User loginNavigation |
Reasonig about combinators (a lambda-calculus puzzle on composing compositions)In Haskell, \f -> \g -> (((f.).).) g is equivalent to \x y z -> f (g x y z), and more generally, \f -> \g -> (((f.)... .) g with n compositions is equivalent to x1 ... xn -> f (g x1 ... xn) with n arguments. But what is \f -> \g -> (.(.(.f))) g? Can you generalize? What about arbitrary left and right compositions, like (.(.((.f).)))? Can a general description be given? I am interested in your strategies in tackling such questions. I find reasoning about combinators quickly overwhelming. Sure, I can mechanically reduce a lambda term to normal form, but it's usually not that insightful. Is the key once more abstraction, through understanding of combinators at a high operational level? Any pointers to resources for reasoning about combinators would be appreciated. By namin at 2009-01-06 04:43 | LtU Forum | previous forum topic | next forum topic | other blogs | 4296 reads
|
Browse archives
Active forum topics |
Recent comments
17 weeks 14 hours ago
17 weeks 14 hours ago
17 weeks 14 hours ago
23 weeks 1 day ago
1 year 11 weeks ago
1 year 11 weeks ago
1 year 11 weeks ago
1 year 33 weeks ago
1 year 37 weeks ago
1 year 39 weeks ago