Pre-Scheme is strongly statically typed (with Hindley-Milner typing, not with declarations), so not that good a match for JS.

Personally I've always thought that full-blast interprocedural HM is problematic: a little error and your code may typecheck, but the types assigned are not the types you expected!  As a matter of language design, I think it's better if procedure arguments and global variables always have to be explicitly typed; we shouldn't try to infer argument types from calls elsewhere in the program.

On Wed, Jul 31, 2019 at 2:55 PM Lassi Kortela <xxxxxx@lassi.io> wrote:
>     Would it be worth specifying a version of Scheme without tail calls and
>     continuations (I know..) that maps easily to JavaScript?
>
> A possible place to start is
> <https://bitbucket.org/cowan/r7rs-wg1-infra/src/default/BottomScheme.md>, which
> is only a spec at present (you can ignore the implementation section). 
> You could add things to it.

That's is very cool! I had forgotten you wrote this.

Another point of comparison is Pre-Scheme. The people who worked with it
apparently said it was good to use. Currently it lives in the Scheme 48
source tree, not sure if there's any formal document about it.

I don't have time to work on these myself, but I will enthusiastically
promote any project that does :)