Re: State of Scheme in the Browser
Lassi Kortela
(31 Jul 2019 16:36 UTC)
|
Re: State of Scheme in the Browser
John Cowan
(31 Jul 2019 18:46 UTC)
|
Re: State of Scheme in the Browser
Lassi Kortela
(31 Jul 2019 18:55 UTC)
|
Re: State of Scheme in the Browser
John Cowan
(31 Jul 2019 19:20 UTC)
|
Re: State of Scheme in the Browser
Lassi Kortela
(31 Jul 2019 20:14 UTC)
|
Re: State of Scheme in the Browser
Amirouche Boubekki
(31 Jul 2019 20:49 UTC)
|
Re: State of Scheme in the Browser
John Cowan
(31 Jul 2019 20:51 UTC)
|
Re: State of Scheme in the Browser
Lassi Kortela
(31 Jul 2019 20:55 UTC)
|
Re: State of Scheme in the Browser
John Cowan
(31 Jul 2019 21:00 UTC)
|
Re: State of Scheme in the Browser Lassi Kortela (31 Jul 2019 21:21 UTC)
|
Re: State of Scheme in the Browser
John Cowan
(31 Jul 2019 22:03 UTC)
|
Re: State of Scheme in the Browser
Lassi Kortela
(01 Aug 2019 09:40 UTC)
|
Re: State of Scheme in the Browser
Amirouche Boubekki
(01 Aug 2019 11:25 UTC)
|
Re: State of Scheme in the Browser
John Cowan
(01 Aug 2019 14:18 UTC)
|
Re: State of Scheme in the Browser
Lassi Kortela
(02 Aug 2019 10:24 UTC)
|
Re: State of Scheme in the Browser
Amirouche Boubekki
(02 Aug 2019 19:19 UTC)
|
Re: State of Scheme in the Browser
Lassi Kortela
(02 Aug 2019 20:42 UTC)
|
Re: State of Scheme in the Browser
Arthur A. Gleckler
(02 Aug 2019 00:55 UTC)
|
Re: State of Scheme in the Browser
John Cowan
(02 Aug 2019 01:17 UTC)
|
Re: State of Scheme in the Browser
Arthur A. Gleckler
(02 Aug 2019 01:28 UTC)
|
Re: State of Scheme in the Browser
John Cowan
(02 Aug 2019 02:28 UTC)
|
Re: State of Scheme in the Browser
Lassi Kortela
(01 Aug 2019 09:48 UTC)
|
> You know, I've written a lot of Scheme library code recently, and very > little of it relies on continuations (except for the occasional escape), > tail calls (except the implicit use in 'let loop'), or macros. Much of > it could just as well be written in JavaScript or Python. For me, > Scheme is pretty much just an alternative syntax (that I prefer) for > modern reasonably-functional languages. I've always felt the same way. Continuations have the obvious l33t factor and are probably very useful when doing low-level stuff like implementations of other programming languages in Scheme, but for day to day work they are rarely necessary. Kent Pitman once made an extended argument that he'd rather not have continuations because they break some guarantees about unwind-protect. (Then again, some FFI and multi-threading tricks probably break them too.) John Carmack made an argument that when a codebase grows and ages, every feature permitted in the language will eventually be used in it (I think he made it as an argument that C++ needs to be re-thought; it could be an argument for Scheme). Are there specific patterns of continuation use to address the infamous "callback hell" in JavaScript? Personally, I don't like the look of that new-style async/await code that is everywhere nowadays so anything better than that would be very welcome :) Elm is currently an oasis free of that stuff. More generally, as we have to deal with more and more concurrent stuff, looking into synchronous programming languages for inspiration is probably smart. I'd still like someone to write a "Lucid Synchrone for plebeians" showcase. That language looks really cool. As for tail calls, recursive code in Scheme just reads very very nicely and makes it trivial to avoid common bugs with accidentally re-using a variable (since variables are re-bound at each recursion step). It would be really nice if we could write code for the browser using tail calls. Part of me is thinking, "Let's just hack this together. How hard can it be?" It sounds like so much fun. Most Scheme compilers already analyze which calls are tail calls, so it should be possible to start hacking from there. Amirouche: Do you have translation of Scheme tailcalls to JS loops working in Ruse Scheme already?