2 ms·
The problem is that it requires all of your functions to have a fixed arity I think, or at least a lower bound on the arity, or you use newlines as part of the
by anaphor 9y ago
The problem is that it requires all of your functions to have a fixed arity I think, or at least a lower bound on the arity, or you use newlines as part of the syntax. Check out this https://shriram.github.io/p4p/ https://shriram.github.io/p4p/
- breck 9y agoVery interesting link, thanks for sharing. I'm always eager to see developments in the Racket world. > The problem is that it requires all of your functions to have a fixed arity I think, or at least a lower bound on the arity, or you use newlines as part of the syntax. This was my initial thought as well. However, in my latest batch of ETNs (the name I give to these types of lisps), I've found that a simple convention of putting any variadic argument last seems to work well. An example may help. Here would be a language blueprint that defines 2 node types: =+2 description Adds two numbers pattern resultIdentifier number number =+ description A variadic adder of unknown arity pattern resultIdentifier number+ Here's a sample program in the language we partially defined above: =+2 sum 2 5 print sum # prints 7 =+ sum 1 2 4 print sum # prints 7