CZTOLJDEFGKJSKI calculus
Jump to navigation
Jump to search
Paradigm(s)  functional 

Designed by  User:Challenger5 
Appeared in  2023 
Computational class  Turing complete 
Reference implementation  Unimplemented 
Influenced by  Lazy K 
File extension(s)  .cztoljdefgkjski 
The CZTOLJDEFGKJSKI calculus is a derivative of Lazy K named after User:olus2000. Unlike Lazy K, it is (mostly) strictly evaluated (callbyvalue) and uses a different set of combinators.
Symbol  Name  Behavior (λterm) 

C 
cardinal  λ a b c → a c b

Z 
strict fixed point  λ a b → a (Z a) b

T 
thrush  λ a b → b a

O 
owl  λ a b → b (a b)

L 
lark  λ a b → a (b b)

J 
jay  λ a b c d → a b (a d c)

D 
dove  λ a b c d → a b (c d)

E 
eagle  λ a b c d e → a b (c d e)

F 
finch  λ a b c → c b a

G 
goldfinch  λ a b c d → a d (b c)

K 
kestrel  λ a b → a

J 
jota  λ a → a S K

S 
starling  λ a b c → a c (b c)

K 
lazy kestrel  λ a b → (eval b; eval a)

I 
idiot  λ a → a

A few other differences from Lazy K:
 Only the Unlambda syntax can be used, but with capitalized combinator names.
 Note that some combinators have multiple definitions. The parser cycles through which definition is used every time the combinator appears in the program. So if you write
``GKK
, the first use ofK
refers to the kestrel, but the second refers to the lazy kestrel.  The lazy kestrel is the only combinator in the language which violates the callbyvalue reduction model. When passed its first argument, it does not immediately evaluate it; instead, it waits for a second argument and evaluates that one first before finally evaluating and returning its first argument.