Releases: Jemtaly/ProjectLambda
Releases · Jemtaly/ProjectLambda
ProjectLambda v3.7.0
- Reimplementing the destructor using BFS avoids the problem of possible stack overflow in the destructor.
- Added an experimental version (
lambda_exp
) designed to avoid double-counting the same part of the equation during a run (there may be unknown problems).
ProjectLambda v3.6.2
- With tail call optimization, the cases that would result in "recursion limit exceeded" runtime errors are greatly reduced.
- Supports keyboard interrupts during runtime. On Windows systems, pressing the Esc key during runtime to stop the calculation. On Linux systems, use Ctrl+C instead.
ProjectLambda v3.6.0
- Added Eager-evaluated function to facilitate output, see README.md.
- The original lite version was renamed to CBV (Call-by-value) version, and the original full version was deleted and replaced with the new CBN (Call-by-need) version. The differences between the two versions can be found in README.md.
- Added a
...
(Nil) built-in function. When it is applied to any argument, it gets itself.
ProjectLambda v3.3.0
- Reduced the priority of
|PAR
in expressions. Now+ $a $a |a (* 100 100)
can be written directly as+ $a $a |a * 100 100
. - Performance is improved by reducing copy construction during computation.
Full Changelog: v3.2.0...v3.3.0
v3.2.0
- Lambda expression syntax changed from
ARG: EXPR
to\ARG EXPR
. - Added
EXPR |PAR ARG
syntactic sugar. - Added a simplified version that removes
fmt
and!VAR
syntax.
Full Changelog: v3.0.2...v3.2.0
ProjectLambda v3.0.2
- Added exception handling for divide-by-zero cases.
- Increased stack size to 4GiB.
ProjectLambda v3.0.1
- Performance fixes for the deepcopy function was made.
ProjectLambda v3.0.0
See commits.
ProjectLambda v2.0
- The syntax for lambda expressions has been redesigned to be more understandable and closer to the standard form of Lambda calculus. (see README.md)
- Added error reporting and handling for exceptions such as runtime exceptions and stack overflows.
- Fixed a problem caused by the lazy evaluation mechanism that the function expression defined by the
set
command would change when it was called.