> Functions are a core part of Vyxal. They are first class objects, meaning that you can have functions on the stack, functions can take functions as arguments, and functions can return functions.
This is actually all you need for writing very compact code. If you were to strip away all other features of Vyxal, namely variables, stacks, numbers, strings, lists, and all control flow, and have only functions from functions to functions, plus some way to use these for input and output, then you have Binary Lambda Calculus [1].
The Vyxal code for the infinite list of Fibonacci numbers is 13 bytes long. In comparison, the BLC code is only 78 bits, or just under 10 bytes: 010101000110100000000001011011001010111110111101110000111110011110100000100010.
Or graphically [2]:
┬─┬ ────┬─┬──────── ─ ┬
└─┤ ────┼─┼─┬─┬──── ┬ │
│ ──┬─┼─┼─┼─┼─┬── │ │
│ ┬─┼─┼─┼─┼─┼─┼── │ │
│ └─┤ └─┤ │ ┼─┼─┬ │ │
│ │ └─┤ │ ├─┘ │ │
│ │ │ ├─┘ │ │
│ │ ├─┘ │ │
│ ├─────┘ │ │
└───┤ │ │
└─────────────┤ │
└─┘
[1] https://www.ioccc.org/2012/tromp/hint.html