-
Notifications
You must be signed in to change notification settings - Fork 89
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Towards Nemerle 2 - Base Language + Multiple Layers of Macro Define features #13330
Comments
For evalution, it could be an explicit scope used to determine lazy or strictness. that can be tucked away with a macro that always simplier typing to specify such. [ strict scope ] and { lazy scope } which can be used in a (top default scope). you can then write ({display [and x y ] {or x y}}) as needed to dictate intent. https://web.cs.wpi.edu/~jshutt/kernel.html http://www.dalnefre.com/wp/2011/12/semantic-extensibility-with-vau/ http://mainisusuallyafunction.blogspot.com/2012/04/scheme-without-special-forms.html |
Source: http://www.dalnefre.com/wp/2011/12/semantic-extensibility-with-vau/ I think the environment should not just be mapping symbol to value but should have a pair of symbol and type to value. |
the environment does not bind to any value. the environment is used to evaluate an expression. |
@sirinath those are really great ideas! Also thanks for the links - they're very inspiring. I'll add one more recent (2019) article about "macro language from the bottom to the top" - it's a "rant" about Racket still not fully achieving this goal despite a lot of success in that regard (IMHO the closest existing language to the goals outlined by you in this discussion thread). |
With regarding implementing N2 the following approach will make life easy.
There should be a minimal core with macros with macros implementing most of the language features.
The base language features which might be needed are:
Macros:
Heterogeneous Data Structures
Proofs
Also what might not be not needed in base or level 0 language:
Some inspiration for this:
But with syntax which is more readable (http://readable.sourceforge.net/) than Lisp variants above. Inspiration does not mean all features from all language but minimal essential features for the core with macros defining each layer.
Also it is not the intention of the general user or programmer to use Nemerle Base / Level 0 abstractions.
The text was updated successfully, but these errors were encountered: