3 ms·
Right, you can have rose trees without polymorphic recursion: data Tree1 a = Leaf1 a | Node1 [Tree1 a] flatten :: Tree1 -> [a] But this type needs it: data
by g___ 8y ago
Right, you can have rose trees without polymorphic recursion:
data Tree1 a = Leaf1 a | Node1 [Tree1 a]
flatten :: Tree1 -> [a]
But this type needs it:
data Tree2 a = Leaf2 a | Node2 (Tree2 [a])
flatten2 :: Tree2 -> [a]
Tree1 can vary in depth between nodes, while Tree2 is either a, [a], [[a]], [[[a]]] etc.
- tome 8y agoI agree, but you can't have the latter in a dynamic language anyway so I don't see why calebh said dynamic language users would miss it.