3 ms·
Uhh, how would you make a linked list with a circle in it with the Haskell List type?
by DannoHung 14y ago
Uhh, how would you make a linked list with a circle in it with the Haskell List type?
- dbaupp 14y agoa = 1:a
- ufo 14y agoThis trick is often called "Tying the Knot", if anyone is interested.
- qznc 14y agomakeCircle rst = rst ++ makeCircle rst The thing is that a circular list is actually an infinite list in Haskell. ;)
- ufo 14y agoThis is not a real circular list though, since it does not tie the knot as in dbaupp's comment.
- DannoHung 14y agoIf you want to prevent that then you want to take general recursion out of your programming language and if you're gonna do that you might as well make it Turing incomplete. These aren't "circles" per se, they are partially evaluated recursive structures. If you expand them you end up with evaluated list structures that are non-self referential.