The library uses semantic versions to identify stable releases.
Features
- #68: Implements generic representations
- Support product lenses for records (
lens:p/1
).
Features
- #54: Implements pattern matching within do-notation
- Add typecast utility for scalar types.
- Support MFA generator for streams
- implements lens isomorphism (
lens:iso/2
,lens:iso/4
) and product lens (lens:p/1
).
Improvements
- Support lists comprehension at do-notation
Features
- Implements basic lenses: identity (
lens:id/0
), constant (lens:const/1
) - Implements binary lenses: head of binary (
lens:hbits/1
), tail of binary (lens:tbits/
), bit focus (lens:bits/2
)
Features
- #30 Define a conditional fail (
require
) that conditionally lifts a value either to object or error of category - #29 Support category transformers as part of nested expressions
- Define a generic operators to modify monad context or execute side-effect
Improvements
- Fix various of compilation errors of function compositions
- Improve test coverage of parse transforms
- Support list comprehensions and list operators as part of function composition
- Export
datum:lens()
data type
Features
- #20 New category
undefined
- #25 Product lens combinator
lens:p(...)
to spawn multiple fields into abstract view - #19 Macros to pattern match empty data structures (see
datum.hrl
) - #22 Define new lens
lens:require/1
,lens:defined/0
to support development of unit testing (validate nested structures using lenses)
Improvements
- Improve interface semantic, introduce
lens:map/3
function instead oflens:apply/3
- Re-implement lens isomorphism feature using product lens
- Update documentations and add examples about lenses
- Use
option
data type to warp lens output
Data structure isomorphism with lenses
Update interface(s) documentation
Re-implement monads through Kleisli category
Introduce category pattern
Improve monads for usage in production
Van Laahorven lenses and monads
Enhance pure functional data-types with abstract interfaces such Foldable, Collections, etc
Implement pure functional data-types: trees, queues, streams, etc