4 ms·
> Modern Scheme has: > * Lazy, immutable, mutable subsets > * Hygenic and unhygenic macros > * Fast and simple error handling > * Fast and simple compiling
by kbp 9y ago
> Modern Scheme has:
> * Lazy, immutable, mutable subsets
> * Hygenic and unhygenic macros
> * Fast and simple error handling
> * Fast and simple compiling and evaluation
> * Tail call elimination
> * Procedures, closures, currying
> * Safe eval, and generative environments
> * Multi-threading and asynchronous callbacks
> What is left for you to consider modern?
Scheme had all of these 30 years ago, and most of them 40. What kind of an argument are they that it's "modern"?
> There are several ways of error handling, because error-handling lazy, immutable, mutable and object-oriented things can't be done in the same way
> You're looking for the Exception stuff. [...] In fact, most other error systems are only there for backwards compatibility with previous versions of the Scheme standard.
So which one is it? The second point seems to agree with lispm anyway; they complained about multiple redundant ways to do something in a "modern" language, and your explanation is that most of those ways are historical cruft.
- shakna 9y ago> What kind of an argument are they that it's "modern"? What would you consider a modern feature? I don't know of anything in the last ten years that could be considered new. This is the second time I'm asking, if no one can answer that... We can only have one conclusion: No language can be considered modern by this definition, rendering it fairly useless as a definition. --- > So which one is it? Allow me to quote myself: > You have the Exception system, used everywhere. When finer-grained control is desired, you also have that available > they complained about multiple redundant ways to do something in a "modern" language, and your explanation is that most of those ways are historical cruft. That was not my explanation. Some are historical, some giver finer grained access. syntax-error allows you to control error handling within macro-expansion time, for example. scm-error allows you to output your own backtrace, including asm if the compiler supports it, and strerr allows you to output Unix errors.
- kbp 9y ago> What would you consider a modern feature? For starters: one that was thought up (or at least added to the language, if we're being that context-sensitive) more recently than 30 years ago. > No language can be considered modern by this definition, rendering it fairly useless as a definition. I agree that it's a fairly useless descriptor.