- Haskell algebraic data types + syntactic sugar
- C/Lisp macros
1. async function will be called from no async function but no async/await keyword. If you want to block main thread then block_main() function will be used. block_main() /* operations */ unblock_main()
2. protocol can inherit another protocol(s) & protocol can confirm a class like swift.
3. no `let`. only `var`. compiler can optimize further.
4. if (a == (10 || 20 || 30) || b == a) && c { }
5. `Asterisk` is replaced to `x` operator for mul operations.
What are the features you found or you need in a programming language?
For sum types we have enums, and for product types we have tuples (or namedtuples or dataclasses). Sugar could be done with decorators or metaclasses.
For Lisp macros, there's macropy and Hissp.
https://www.gnu.org/software/m4/
https://threeofwands.com/algebraic-data-types-in-python/
There are issues with using stand-alone implementations of C preprocessing like GNU cpp with languages that deviate from C in their token syntax.