Composition Calculus by notogawa

data E=T{s::String}|D(E->E)
m@main=getLine>>=putStrLn.s.foldl1(#).map(T).words>>m
D f#x=f x
T"."#x=D$D.(.)(x#).(#)
T a#T b=T$'(':a++' ':b++")"

Note that non-ascii characters in the above source code will be escaped (such as \x9f).

download

return to the top page