1. Pattern matching as the basis for function definition, to determine which code executes and expedite argument destructuring.
2. Patterns themselves should have first-class representation (preferably symbolic), so you can generate them in one place and use them in another.
3. Implicit in this is that the structure of the language is systematic enough to make this worthwhile, meaning something s-expression based, or perhaps something like Scala that achieves similar ends in a much different way.
1. Pattern matching as the basis for function definition, to determine which code executes and expedite argument destructuring.
2. Patterns themselves should have first-class representation (preferably symbolic), so you can generate them in one place and use them in another.
3. Implicit in this is that the structure of the language is systematic enough to make this worthwhile, meaning something s-expression based, or perhaps something like Scala that achieves similar ends in a much different way.