Posted by petalmind 5 days ago
For example, SmallTalk is a class based OO system, yet this postcard doesn’t slow you how to create a class.
The first Smalltalk-80 book you randomly find is 560 pages.
Also, there is a weird bargaining with "but not block temporaries" and "not an instance variable". Why not? Half of the postcard is basically empty. Also, "except primitives" — how many primitives are there?
In Ruby this is also the other way around, and it's one of my pet peeves.
`Kernel#callcc` looks like a method (arguably, of a special class), yet it's impossible to re-implement directly in the language, as far as I can tell.
Same with `raise`, I keep forgetting that it's not a keyword even.
https://decasia.org/tech/2026/02/raise-not-a-reserved-word.h...
This being said, I don't think there is any requirement technically that every core method can also be re-implemented in Ruby... There are so many methods that are just thin interfaces to something written in C, whether because they are touching VM internals, or for perf reasons, or because they make system calls or call external libraries.
https://en.wikipedia.org/wiki/APL_(programming_language)#/me...
OTOH Ruby doesn't need a postcard, it needs a full poster.
Lisp? Then I would use Lisp...
> The goal is to define a comprehensive, trivially-parsable and sugar-free syntax.
Ruby has syntax sugar, no need to remove the funny parts.
This is just an intermediate representation, it's not meant to be used directly (even though you can do that, of course).
Lisp has completely different runtime semantics. Even the lexical scope in Ruby is extremely peculiar. One of the hard parts of writing this document was to remove the intuitive influence of Lisp because it just doesn't make sense for Ruby.
Claude suggests it, but I need to learn a lot of Redex to understand how to apply it.
I have a general understanding of what operational semantics is. Or maybe, are there any Redex implementations for common programming languages? \lambda_v is a bit too abstract.