Playing with lambda elimination and point-free style
It was a long time since I've last played with Haskell, so I decided to do a bit of lambda elimination as an exercise. let f=(\x y->x++y);g=(\x y z->x++y++z)in f(g "1""2""3")"4" let f=(++);g=(f.).f in f(g "1""2""3")"4" let f=(++);g=(f.).f in (f(g "1""2""3"))"4" let f=(++);g=(f.).f in (f.(g "1""2"))"3""4" let f=(++);g=(f.).f in (f.((g "1")"2"))"3""4" let f=(++);g=(f.).f in ((f.).(g "1"))"2""3""4" let f=(++);g=(f.).f in ((f.).g "1")"2""3""4" let f=(++);g=(f.).f in (((f.).).g)"1""2""3""4" let f=(++);g=(f.).f;h=((f.).).g in h"1""2""3""4" let f=(++);h=((f.).).(f.).f in h"1""2""3""4" let ...