logoalt Hacker News

aleph_minus_onetoday at 1:02 PM3 repliesview on HN

> Now do breadth-first traversal. With the iterative approach, you just replace the stack with a queue. With the recursive approach, you have to make radical changes.

The reason is that no programming language that is in widespread use has first-class support for co-recursion. In a (fictional) programming language that has this support, this is just a change from a recursive call to a co-recursive call.


Replies

Chinjuttoday at 1:53 PM

Haskell (I realize this may not pass your threshold for widespread use) has equal support for co-recursion as for structural recursion.

twictoday at 6:44 PM

Right, you could use co-recursion. Or you could just use a queue.

naaskingtoday at 3:02 PM

True, but couldn't you just simulate it by enqueing a thunk/continuation?