Whether "#!(import (...))" or "#lang algol60" doesn't make any difference about the kind of language being accepted. It is more about whether just the reader or more of the compiler/interpreter pipeline will be affected by such switches.
Scheme used as an object-oriented language has several good properties: it
is well-defined, it is abstract and thus uncommitted to a particular
implementation style, it has very general control structure.
However, it has two fatal flaws: lack of concrete data typing facilities and
requirement for garbage collection. Also, none of its implementations are as
efficient as implementations of traditional sequential programming
languages.
The first flaw can be dealt with by erasing concrete types and the second by providing an array-based allocator when required. Efficiency can be traded off for safety and/or simplicity.
> The good thing here is that we have a separation of concerns here:
>
> (1) Signifying that a file is to be parsed with a specific reader.
> (2) Extending the built-in reader.
The first is more general, if less convenient.
There may be some misunderstanding. (1) is not an alternative to (2) but both go hand-in-hand.
For which use cases, other than changing the lexical syntax in the middle of a file (compilation unit), can #2 do the job but not #1?
John Cowan
http://vrici.lojban.org/~cowan xxxxxx@ccil.orgClear? Huh! Why a four-year-old child could understand this report.
Run out and find me a four-year-old child. I can't make head or tail
out of it. --Rufus T. Firefly on government reports