diff options
Diffstat (limited to 'untyped/aviary.rkt')
-rw-r--r-- | untyped/aviary.rkt | 103 |
1 files changed, 103 insertions, 0 deletions
diff --git a/untyped/aviary.rkt b/untyped/aviary.rkt new file mode 100644 index 0000000..7014ad1 --- /dev/null +++ b/untyped/aviary.rkt @@ -0,0 +1,103 @@ +#lang racket +(provide (all-defined-out)) + +;; Encodings of various combinators in s-exps +;; https://www.angelfire.com/tx4/cus/combinator/birds.html +;; https://wiki.xxiivv.com/site/ornithodex.html + +;; Bluebird +(define B '(λ a (λ b (λ c (a (b c)))))) +;; Blackbird +(define B1 '(λ a (λ b (λ c (λ d (a ((b c) d))))))) +;; Bunting +(define B2 '(λ a (λ b (λ c (λ d (λ e (a (((b c) d) e)))))))) +;; Becard +(define B3 '(λ a (λ b (λ c (λ d (a (b (c d)))))))) +;; Cardinal +(define C '(λ a (λ b (λ c ((a c) b))))) +;; Dove +(define D '(λ a (λ b (λ c (λ d ((a b) (c d))))))) +;; Dickcissel +(define D1 '(λ a (λ b (λ c (λ d (λ e (((a b) c) (d e)))))))) +;; Dovekies +(define D2 '(λ a (λ b (λ c (λ d (λ e ((a (b c)) (d e)))))))) +;; Eagle +(define E '(λ a (λ b (λ c (λ d (λ e ((a b) ((c d) e)))))))) +;; Bald Eagle +(define Ê '(λ a (λ b (λ c (λ d (λ e (λ f (λ g ((a ((b c) d)) ((e f) g)))))))))) +;; Finch +(define F '(λ a (λ b (λ c ((c b) a))))) +;; Goldfinch +(define G '(λ a (λ b (λ c (λ d ((a d) (b c))))))) +;; Hummingbird +(define H '(λ a (λ b (λ c (((a b) c) b))))) +;; Idiot Bird (Identity) +(define I '(λ a a)) +;; Jay +(define J '(λ a (λ b (λ c (λ d ((a b) ((a d) c))))))) +;; Kestrel (True) +(define K '(λ a (λ b a))) +;; Kite (False) +(define Ki '(λ a (λ b b))) +;; Lark +(define L '(λ a (λ b (a (b b))))) +;; Nightingale +(define N '(λ a (λ b (λ c (λ d ((a (b d)) (c d))))))) +;; Mockingbird +(define M '(λ a (a a))) +;; Double Mockingbird +(define M2 '(λ a (λ b ((a b) (a b))))) +;; Owl +(define O '(λ a (λ b (b (a b))))) +;; Queer Bird +(define Q '(λ a (λ b (λ c (b (a c)))))) +;; Quixotic Bird +(define Q1 '(λ a (λ b (λ c (a (c b)))))) +;; Quizzical Bird +(define Q2 '(λ a (λ b (λ c (b (c a)))))) +;; Quirky Bird +(define Q3 '(λ a (λ b (λ c (c (a b)))))) +;; Quacky Bird +(define Q4 '(λ a (λ b (λ c (c (b a)))))) +;; Robin +(define R '(λ a (λ b (λ c ((b c) a))))) +;; Starling +(define S '(λ a (λ b (λ c ((a c) (b c)))))) +;; Thrush +(define T '(λ a (λ b (b a)))) +;; Turing +(define U '(λ a (λ b (b ((a a) b))))) +;; Vireo (aka Pairing) +(define V '(λ a (λ b (λ c ((c a) b))))) +;; Warbler +(define W '(λ a (λ b ((a b) b)))) +;; Converse Warbler +(define W1 '(λ a (λ b ((b a) a)))) +;; Why Bird (aka Sage Bird) +(define Y '(λ a (a (λ a todo)))) +;; Idiot Bird Once Removed +(define I* '(λ a (λ b (a b)))) +;; Warbler Once Removed +(define W* '(λ a (λ b (λ c (((a b) c) c))))) +;; Cardinal Once Removed +(define C* '(λ a (λ b (λ c (λ d (((a b) d) c)))))) +;; Robin Once Removed +(define R* '(λ a (λ b (λ c (λ d (((a c) d) b)))))) +;; Finch Once Removed +(define F* '(λ a (λ b (λ c (λ d (((a d) c) b)))))) +;; Vireo Once Removed +(define V* '(λ a (λ b (λ c (λ d (((a c) b) d)))))) +;; Warbler Twice Removed +(define W** '(λ a (λ b (λ c (λ d ((((a b) c) d) d)))))) +;; Cardinal Twice Removed +(define C** '(λ a (λ b (λ c (λ d (λ e ((((a b) c) e) d))))))) +;; Robin Twice Removed +(define R** '(λ a (λ b (λ c (λ d (λ e ((((a b) d) e) c))))))) +;; Finch Twice Removed +(define F** '(λ a (λ b (λ c (λ d (λ e ((((a b) e) d) c))))))) +;; Vireo Twice Removed +(define V** '(λ a (λ b (λ c (λ d (λ e ((((a b) e) c) d))))))) +;; Konstant Mocker +(define KM '(λ a (λ b (b b)))) +;; Crossed Konstant Mocker +(define CKM '(λ a (λ b (a a)))) |