about summary refs log tree commit diff stats
path: root/rnd/js
diff options
context:
space:
mode:
authorelioat <elioat@tilde.institute>2022-12-13 16:32:52 -0500
committerelioat <elioat@tilde.institute>2022-12-13 16:32:52 -0500
commitd1c246e398b60620446e25e4881030a9c2f7aec4 (patch)
tree912d00132628d90422683703ab1969442f21dab9 /rnd/js
parentb2a47f5bb187a4e69d144bcd1dceee2b6d022c0b (diff)
downloaddecember-2022-d1c246e398b60620446e25e4881030a9c2f7aec4.tar.gz
*
Diffstat (limited to 'rnd/js')
-rw-r--r--rnd/js/birds.js18
1 files changed, 18 insertions, 0 deletions
diff --git a/rnd/js/birds.js b/rnd/js/birds.js
new file mode 100644
index 0000000..bb4dac2
--- /dev/null
+++ b/rnd/js/birds.js
@@ -0,0 +1,18 @@
+// from <https://gist.github.com/Avaq/1f0636ec5c8d6aed2e45>
+
+const I  = x => x
+const K  = x => y => x
+const A  = f => x => f (x)
+const T  = x => f => f (x)
+const W  = f => x => f (x) (x)
+const C  = f => y => x => f (x) (y)
+const B  = f => g => x => f (g (x))
+const S  = f => g => x => f (x) (g (x))
+const S_ = f => g => x => f (g (x)) (x)
+const S2 = f => g => h => x => f (g (x)) (h (x))
+const P  = f => g => x => y => f (g (x)) (g (y))
+const Y  = f => (g => g (g)) (g => f (x => g (g) (x)))
+
+
+// lift
+console.log(((a) => (b) => a + b) (x => x.a, x => x.b) ({a: 2, b: 3}))
\ No newline at end of file