6 ms·
I prefer the syntax of CL over Scheme, but the latter is definitely a wonderful language and goes hand in hand with the wizard book, SICP. At the end of the da
by abhinav22 6y ago
I prefer the syntax of CL over Scheme, but the latter is definitely a wonderful language and goes hand in hand with the wizard book, SICP.
At the end of the day, language choice, much like choice of editors or mechanical keyboards, is not that important — what is important is actually coding and building useful software. This can be done in any language, although I do not want to sound ignorant, as certain languages are better suited for certain tasks (eg swift for iOS dev).
As a Mac/Windows user, I’d be keen to know how popular Guile is for GNU Projects?
For those who want to learn Common Lisp quickly, this is a great guide: https://github.com/ashok-khanna/common-lisp-by-example https://github.com/ashok-khanna/common-lisp-by-example
- frutiger 6y agoGNU Guile is the expression language for Guix (perhaps its major distinguishing feature, when compared to Nix, which uses its own bespoke language).
- abhinav22 6y agoThanks! Guix sounds pretty cool, I just did a cursory read of Wikipedia after your post.
- dleslie 6y agoI love Scheme, but it _badly_ needs call/cc replaced with delimited continuations.
- mst 6y agoThe ease of implementing call/cc early on when you have a trivial interpreter is dangerous - it becomes far too easy to end up not realising you've made a rod for your own back until way too late. A spec entry for delimited continuations with call/cc as an -optional- feature would definitely seem like an improvement in terms of leading implementors down a saner path.
- svieira 6y agoWhat is the difference between call/cc and delimited continuations?
- mst 6y agoMy main interest: delimited continuations are only valid within a specific stack extent so they're much for viable for extensive use - one could argue that async/await is kinda the simplest (and most limited) possible delimited continuation implementation. For a better understanding, https://en.wikipedia.org/wiki/Delimited_continuation https://en.wikipedia.org/wiki/Delimited_continuation didn't feel like a terrible start and I'm far from an expert here.
- dreamcompiler 6y agoThe fully-general continuations that call/cc creates require copying chunks of the stack to the heap for storage and back again when they're used. (Or pointing the stack pointer at the heap, which I find even more cringe-inducing.) They're memory hogs whose lifetimes are hard to reason about and they provide relatively little benefit to most programs, which is why Common Lisp doesn't provide them.
- michaelsbradley 6y agoDelimited continuations, a.k.a composable continuations, are. a generalization of control operators such as call/cc. https://en.wikipedia.org/wiki/Delimited_continuation https://en.wikipedia.org/wiki/Delimited_continuation
- bjoli 6y agoThey are faster, easier to reason about, less prone to leak memory and are always what you want. Everyone except maybe the chicken scheme people agree, but call/cc is free for them due to their GC strategy.
- dleslie 6y agoChicken and Cyclone share the same gc strategy.
- bjoli 6y agoGuile implementation of prompts (the guile name for delimited continuations) is the one I prefer the most among the schemes.
- pmoriarty 6y ago"I prefer the syntax of CL over Scheme" Can you elaborate on what it is about CL syntax that you prefer over Scheme, and why?