package minicaml
sectionYPositions = computeSectionYPositions($el), 10)"
x-init="setTimeout(() => sectionYPositions = computeSectionYPositions($el), 10)"
>
On This Page
A simple, didactical, purely functional programming language
Install
dune-project
Dependency
Authors
Maintainers
Sources
minicaml-0.3.1.tbz
sha256=eeceeb87713fef842ddb1b0d3c234d22a5d0b6edcd36b1fd12f5e57a27924a4d
sha512=c3942b7520062f1000e1d005b6c720d91b9eabb65952aaa04066297b04b5a3105f3547f0eeef51f1f90e9436be159918a110c7a292467bfba249df14b847b121
doc/CHANGES.html
0.3.1 2019-12-26
Added
map2primitive- Reading programs from files
- An abstraction that allows treating primitives as functions, and so allows currying and all the fancy stuff.
- Examples in the
examples/directory - Greater or equal to and Less than or equal to operators
- More test coverage.
Bugfixes
- Fixed various bugs of 0.3
0.3 2019-12-25
Added
- A simple AST optimizer
- Multiple let assignments (
let x = 2 and y = 3 and z = ... in ...) - Function currying (partial application)
- Strings
- Sequences of expressions separated with
;are treated as a single expression that returns the value of the last one. - Function pipelining (reverse composition) with the
>=>operator. ((fun x y -> x + y >=> g) 1 2isg 3) - Dictionaries (
{"hello": 123, "world": 345}) - Map, foldl and filter on lists and dictionaries
- Testing and code coverage using alcotest and bisect_ppx
Bugfixes
- Fixed function application parser
0.2.2 2019-12-13
Added
let lazy rec(orlet rec lazy) to define recursive lazy functions- Command line option parser and man page
- Command line option
-v(--verbose) to tell the REPL to show the AST and reduction steps. - Evaluation step printing is now done in correct order and nesting.
Bugfixes
- Fixed boolean primitives.
Removed
lazyfunandlazylambdastatements.
0.2.1 2019-12-12
Added
- Optional
lazyevaluation! You can uselet lazyto define values that will be evaluated only when encountered in thelet lazyexpression body. - Lazy anonymous functions! Just like the
let lazystatement you can now uselazyfunorlazylambdato define anonymous functions which arguments will be lazily evaluated.
Bugfixes
- Fixed precedence levels in parser
Roadmap
- Cache for lazy evaluation
- Partial application
0.2 2019-12-08
Added
- Lists
- Unit
0.1 2019-12-03
Added
- Initial release of the project
sectionYPositions = computeSectionYPositions($el), 10)"
x-init="setTimeout(() => sectionYPositions = computeSectionYPositions($el), 10)"
>
On This Page