There was an error while loading. Please reload this page.
1 parent d5f67f4 commit d4271e0Copy full SHA for d4271e0
TinyLambda-minimized.hs
@@ -2,7 +2,5 @@ data T=T{a::T->T,(%)::ShowS}
2
i d=T(i. \x v->'(':d v++' ':x%v++")")d
3
l f v="(λ "++v++". "++f(i(\_->v))%('x':v)++")"
4
(?)=q.head.lex
5
-q("(",'λ':s)k|[(w,_:t)]<-lex s=t? \b->k(\e->T<*>l$b.(:e).(,)w).tail
6
-q("(",s)k=s? \f->(? \x->k(a.f<*>x).tail)
7
-q(v,s)k=k(foldl1 a.lookup v)s
+q(v,s)k|v/="("=k(foldl1 a.lookup v)s|'λ':u<-s,[(w,_:t)]<-lex u=t? \b->k(\e->T<*>l$b.(:e).(,)w).tail|0<1=s? \f->(? \x->k(a.f<*>x).tail)
8
main=interact(? \f->(f[]%"x"++))
0 commit comments