
So what I glean from this is that Racket is basically the combination of Henry Baker’s greatest hits and an April fools joke that escaped the lab and gone on the generate hundreds of papers.

I don’t know all that you might be insinuating, but I don’t think of Racket’s local definition systems as a joke.

@ronsider2 has joined the channel

what was considered to be a prank on the implementers in 1986 has been realized today, so definitely no longer a joke as a result of enormous amounts of work, but the difficulty of implementation issues remain, which is what inspired many of the original responses

I don’t think anyone considered it a prank on implementors even in 1986

ah I see the This issue has been beaten
to death and it was (& is) in poor taste for me to inflame old wounds
again.
down thread

People certainly disagreed as those posts indicate, and Guy indicates that there was similar disagreement on the Common Lisp committee

I think mostly for the same reasons discussed in this thread

Ah, the history of this is all new to me, and I haven’t (yet) read further into those threads than the two emails that were linked directly. I guess I’ve been retreading ground, so I should look into it some more. :sweat_smile:

I think rrrs-authors is extremely interesting to read, but you’ve definitely already thought more deeply about this issue than those emails

I appreciate hearing that. I’ve had to go back to the drawing board on this a number of times over the years, and it’s still basically vaporware, but I probably wouldn’t even be thinking about it if Racket’s approach didn’t serve as an example. Given the influences I’m able to build upon, there’s probably no way to compare what I’m doing to what was going on in 1986.
I think the similarity that stands out to me is the thought that I’m not the only one who sees local define
as a source of complexity. I identify it as a source of complexity basically because I want it to work in a different way, and in order to get that to make sense, I’ve had to refactor a lot of the complexity that Racket has built up around it. Outside of some corner cases, it’s hard to say that I’m even building something simpler, just opting for the same level of complexity in a different arrangement. So I don’t think I’d exactly call Racket’s local define
a mistake or a prank, and I’m glad it’s been explored as far as it has in Racket, but I also think people who opt for let
are probably saving themselves some grief.