Hi! 👋 I’m trying to get through the exercises in the Binary Tree example here: http://elm-lang.org/examples/binary-tree.
I’ve got to the 4-th and it seems to me like it’s impossible to solve (with the understanding I have now). 🤔 So, here it goes: (4) Write a general fold function that acts on trees. The fold > function does not need to guarantee a particular order of > traversal. > > fold : (a -> b -> b) -> b -> Tree a -> b …and here is my attempt to solve it: fold : (a -> b -> b) -> b -> Tree a -> b > fold f z tree = > case tree of > Empty -> z > Node v left right -> > let > z_ = f v z > l_ = fold f z left > r_ = fold f z right > in > {- TODO: figure out how to combine the 3 values of type b -} > f v z_ The issue I’m stuck with in the last case —​ Node v left right -> — is that I now got 3 values of type b which I can’t fold into the final result: f has the type of (a -> b -> b), so if the only value of type a here is z, the most I can do is one folding operation, but I get another b as a result. 😶 My question is: How can I fold the 3 values? Or is this approach workable at all? What am I missing? 🤔 Cheers! 👋 -- You received this message because you are subscribed to the Google Groups "Elm Discuss" group. To unsubscribe from this group and stop receiving emails from it, send an email to elm-discuss+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.