Most builtins are now generated from data too, with two exceptions: * Undocumented builtins, since supporting them would add complexity to the generator, the harms of the current implementation mostly don't apply, and the proper fix is to document them. * `derivation` is somewhat magic (it is a function, but defined in the code as a constant), so the current treatment of having it separately documented is kept (for now, at least). Since it is slightly easier to do and probably a good idea anyway, the builtin function registrations generated this way are now processed directly in code and don't go through global variables any more. Unfortunately, a slight breaking change is introduced because the order of the builtins' names in the symbol table changes. Hopefully, this will turn out to not matter in practice. Change-Id: I7b4379a93ae380b6524e41a916a21c5c6f70555e
241 B
241 B
name, args
| name | args | ||
|---|---|---|---|
| genList |
|
Generate list of size length, with each element i equal to the
value returned by generator i. For example,
builtins.genList (x: x * x) 5
returns the list [ 0 1 4 9 16 ].