Ranter
Join devRant
Do all the things like
++ or -- rants, post your own rants, comment on others' rants and build your customized dev avatar
Sign Up
Pipeless API
From the creators of devRant, Pipeless lets you power real-time personalized recommendations and activity feeds using a simple API
Learn More
Comments
-
To do:
Optimization:
- intern tokens
- avoid extraneous macro matches
Housekeeping:
- get rid of Mrc
- replace as many instances of Rc with lifetimes as possible (I learned Rust with this project)
Planning:
- think hard about how polymorphism could work and whether it's avoidable (dynamically typed polymorphism is jucky)
- expand the STL with list, map, option and other goodies
- proof-of-concept for pattern matching with manually defined matchers -
It looks like you have two assignment operators = and :=
And = is also a comparison operator in the conditions.
Why? -
@Lensflare the comparison operator is now ==, but basically
name := ...expression
is a name binding for a constant or function (they are equivalent) and it actually desugars to the macro, aka. a substitution rule applied to the code before execution. On the other hand,
statement (let $name = ...$expression) ...$rest ==> (\$name. ...$rest) (...$expression)
is its own macro, operating in conjunction with a macro that turns do blocks into statement sequences. Both of these are implemented in Orchid and modular, for instance, CPS is a variant of the "let" rule that passes the lambda to the expression and not the other way around. -
@retoor Rust made a deep impression on me, but the similarities end at "familiar c-style syntax but make it more functional". I made it even more functional with autocurry and the underlying language is completely different.
-
@retoor If you think the syntax is gay you'll love the logo I came up with yesterday
Related Rants
Orchid runs!
It's very far from done, but now I'm motivated to get shit done! My optimizations can now have measurable impact! The hypothetical examples no longer have to be hypothetical!!!
rant
orchid
langdev