Monads for Crystal
Stable version compatible with Crystal 1.0
#53 Make Monads compatible with Crystal 0.29.0
Try
monad=> https://github.com/alex-lairan/monads/pull/47
Task
monad=> https://github.com/alex-lairan/monads/pull/45
List
monadInitialize list with [](*args)
=> https://github.com/alex-lairan/monads/pull/34
Add List#reverse
=> https://github.com/alex-lairan/monads/pull/41
Add Comparable
=> https://github.com/alex-lairan/monads/pull/35/files
Add List#next
and Indexable
=> https://github.com/alex-lairan/monads/pull/36
=> https://github.com/alex-lairan/monads/pull/42
Add #sort
and #sort_by
=> https://github.com/alex-lairan/monads/pull/43
=> https://github.com/alex-lairan/monads/pull/44
Add #permutations
, #subsequences
and #join
=> https://github.com/alex-lairan/monads/pull/40
Add #last
and #empty
=> https://github.com/alex-lairan/monads/pull/39
Add #to_s
and #inspect
=> https://github.com/alex-lairan/monads/pull/38
Add #|
(bind) and #>>
(sequence) operator
=> https://github.com/alex-lairan/monads/pull/46
Update readme => https://github.com/alex-lairan/monads/pull/48 => https://github.com/alex-lairan/monads/pull/50 Thanks @amelie-certin
Implement Comparable(T) to Maybe monad and remove redundant #== method.
=> https://github.com/alex-lairan/monads/pull/5 => https://github.com/alex-lairan/monads/pull/14
Multiples methods reimplementations.
Create Monad(T)
and Fonctor(T)
=> https://github.com/alex-lairan/monads/pull/6 => https://github.com/alex-lairan/monads/pull/16 => https://github.com/alex-lairan/monads/pull/19 => https://github.com/alex-lairan/monads/pull/20 => https://github.com/alex-lairan/monads/pull/23 => https://github.com/alex-lairan/monads/pull/24 => https://github.com/alex-lairan/monads/pull/27 => https://github.com/alex-lairan/monads/pull/28 => https://github.com/alex-lairan/monads/pull/29 => https://github.com/alex-lairan/monads/pull/30 => https://github.com/alex-lairan/monads/pull/31 => https://github.com/alex-lairan/monads/pull/32
Use structs instead of classes
=> https://github.com/alex-lairan/monads/pull/9 => https://github.com/alex-lairan/monads/pull/22
Rename Result to Either
=> https://github.com/alex-lairan/monads/pull/10
Add #inspect
for Maybe monads and Either
=> https://github.com/alex-lairan/monads/pull/11 => https://github.com/alex-lairan/monads/pull/12 => https://github.com/alex-lairan/monads/pull/13
Add a CI
=> https://github.com/alex-lairan/monads/pull/15 => https://github.com/alex-lairan/monads/pull/17 => https://github.com/alex-lairan/monads/pull/18
Fix Block type introspection by using a proc
Maybe monad should be close to Haskell or Scala's API => https://github.com/alex-lairan/monads/pull/2
Add methods: to_s, inspect: for easy-to-read nothing?, just?: instead of failure? and success? and remove following methods:
failure, success?: due to the above reasons. #== is implemented for each Just and Nothing and remove Maybe's => https://github.com/alex-lairan/monads/pull/3
Remove remained old 'equal?' methods in Nothing => https://github.com/alex-lairan/monads/pull/4