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 | 4088 reads
|
Browse archives
Active forum topics |
Recent comments
22 weeks 6 days ago
22 weeks 6 days ago
22 weeks 6 days ago
45 weeks 16 hours ago
49 weeks 2 days ago
50 weeks 6 days ago
50 weeks 6 days ago
1 year 1 week ago
1 year 6 weeks ago
1 year 6 weeks ago