4 ms·
It started as a Scheme and one of it's #langs implements a Scheme these days, but Racket itself is strictly more powerful than Scheme.
by packetlost 2y ago
It started as a Scheme and one of it's #langs implements a Scheme these days, but Racket itself is strictly more powerful than Scheme.
- tbrownaw 2y ago> strictly more powerful Are they not both turing-complete?
- Asraelite 2y agoTuring completeness ignores performance and compatibility requirements. Two languages are theoretically equally powerful only if they can produce functionally identical machine code in any situation.
- cultofmetatron 2y agoin practice, turing complete doesn't necessarily mean powerful or equivalent. brainfuck and minecraft are turing complete but no one is trying to write business software in it. ergonomics matter
- zelphirkalt 2y agoIf I was to interpret that "strictly more powerful" statement, I would interpret it to be about how Racket's macro system works and what information its syntax objects carry. Or interpret it to mean the different languages it provides, like Typed Racket for example. On the other hand I found using multiple cores much easier in GNU Guile.
- soegaard 2y agoIf you are interested in a more nuanced way of comparing languages, take a look at: "On the expressive power of programming languages" Matthias Felleisen https://www.sciencedirect.com/science/article/pii/016764239190036W/pdf?md5=b7dedd960214d9191929e6f41f5fd5be&pid=1-s2.0-016764239190036W-main.pdf&_valck=1 https://www.sciencedirect.com/science/article/pii/0167642391... Abstract The literature on programming languages contains an abundance of informal claims on the relative expressive power of programming languages, but there is no framework for formalizing such statements nor for deriving interesting consequences. As a first step in this direction, we develop a formal notion of expressiveness and investigate its properties. To validate the theory, we analyze some widely held beliefs about the expressive power of several extensions of functional languages. Based on these results, we believe that our system correctly captures many of the informal ideas on expressiveness, and that it constitutes a foundation for further research in this direction.
- shawn_w 2y agoI would say more convenient than Scheme. I can't think of any Scheme implementations that come with as much stuff as a standard Racket installation (before adding in extra third party libraries). Gauche, maybe, or Guile. The biggest difference is that in Racket, cons cells, and thus lists, are immutable (the Scheme #langs like r5rs use a different incompatible type for their conses). There's other more subtle changes but that's the one most likely to bite people used to Scheme. Well, that and `if` taking exactly 3 arguments.