Hacker News new | ask | show | jobs
by kelseyfrog 466 days ago
And yet we don't use goto today because of the bugs and we're phasing out manual memory management for the same reason.

You cannot org change yourself out of all technical problems.

2 comments

You throw goto around like it's some revolutionary change that we don't use gotos. Djikstra's paper was like 70 years ago and it was released like immediately after languages were being born.
Recursion schemes are at least as old as "Functional Programming with Bananas, Lenses, Envelopes and Barbed Wire" (1991), which is closer to "Go To Statement Considered Harmful" (1968, so 23 years) than it is to today (34 years). Recursion schemes aren't at all new either.
A few past threads:

Functional programming with bananas, lenses, envelopes and barbed wire [pdf] (1991) - https://news.ycombinator.com/item?id=31152801 - April 2022 (28 comments)

Functional Programming with Bananas, Lenses, Envelopes and Barbed Wire - https://news.ycombinator.com/item?id=24056901 - Aug 2020 (18 comments)

Functional Programming with Bananas, Lenses, Envelopes and Barbed Wire (1991) [pdf] - https://news.ycombinator.com/item?id=9080933 - Feb 2015 (2 comments)

Functional programming with bananas, lenses, envelopes and barbed wire - https://news.ycombinator.com/item?id=6195603 - Aug 2013 (1 comment)

We don't use GOTO because we got richer alternatives.

A lot of people were using GOTO because they wanted (for example) do-while or switch-case, or because they wanted to box up their code into self-contained functional units, but the 8k ROM BASIC they were working with didn't have proper tooling to implement it.

Most modern languages support enough of those features that people aren't simulating them through GOTOs. Recursion schemes have not hit that level of availability and general awareness.

Going back several levels of parents, I note the mention of Haskell-- it feels like the functional programming world does a lot of heavy lifting on new language theory, but it tends to remain cloistered there for decades until people figure out how to bolt it into something that looks more like Algol or C than Lisp.