Composition Calculus by koyama41

data T=L[Char]|T:+T
m@main=getLine>>=putStrLn.p.foldl1(&).map L .words>>m
L".":+a:+b&c=a&(b&c)
x&y=x:+y
p(L x)=x
p(x:+y)='(':p x++' ':p y++")"

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

download

return to the top page