Releases: asegs/fever-lang
v2.0.3
v2.0.2
v.2.0.1
v2.0.0
Reimplements the entire core interpreter using proper syntax tree objects, removing all re-parsing of text after initial parsing, adds TypeScript types, and evaluates variable scopes at function invoke time vs. last minute passing as variable objects. Deprecates auto-tupling functionality in cases where a default match is found (1,2) + (3,4) //nonsense, in order to keep this from being called overzealously. May improve in the future. Improves interpreter speed and adds support for zero arg functions, array literals, and assigning to function names via a stable method. And a lot more.
v1.1.0
This adds an optional universal function call syntax (UFCS) into the language. A simple rewrite of source code is performed before lexing to rewrite method calls ([1,2,3].contains?(3)) as function calls (contains?([1,2,3],3)). This can also be used on one argument functions, currently like 1.f().
v1.0.0
v0.9.0
Adds morphisms and various type tricks.
You can register a morphism by calling morph(function, fromType, toType) with any one argument function or morph(function, toType) when all function patterns have the same type.
Morphisms are automatically used, so calling something that takes a number when given a bool may convert the bool into a number first.
Also, plural types are now supported in signatures, so f = {values:numbers} => ... is a valid signature!
v0.8.0
Makes functions dispatch dynamically and locally instead of from a global function table.
Allows for first class functions as a result.
Exclusively using the stringify function to print out data, which can be overridden either in Fever or JS for any specific type.
Adds a nice helper for printing functions in order of their case specificity and changes how function cases are represented within the type system.