@@ -80,7+80,9 @@ To translate that, first let's handle the iteration over the final list, that `x
This looks like what we had before, except that now we have this free variable `y` in our lambda expression. Perhaps we can bind that variable inside a *larger* lambda expression, and then map (and filter) *that* larger lambda expression over the list that `y` is drawn from:
This looks like what we had before, except that now we have this free variable `y` in our lambda expression. Perhaps we can bind that variable inside a *larger* lambda expression, and then map (and filter) *that* larger lambda expression over the list that `y` is drawn from:
- map (lambda y. map (lambda x. 10*x + y) [1, 2, 3]) $ filter (lambda y. y < 6) [4, 5, 6]
+ let
+ f match lambda y. map (lambda x. 10*x + y) [1, 2, 3]
+ in map f $ filter (lambda y. y < 6) [4, 5, 6]
This gives us nearly what we want. It evaluates to:
This gives us nearly what we want. It evaluates to: