blob: 30950ab70909d9a355c9f616c2a033d64c16b3f9 (
about) (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
|
# algebraic-structures
Provides useful algebraic structures for programming using parameterized module.
## Install
Run `chicken-install` in the project's root directory.
```
$ cd algebraic-structures
$ chicken-install
```
## Supported Features
- Semigroup: =(algebraic-structures semigroup)=
- Number (product): =(algebraic-structures number product semigroup)=
- Number (sum): =(algebraic-structures number sum semigroup)=
- List: =(algebraic-structures list semigroup)=
- Vector: =(algebraic-structures vector semigroup)=
- Stream: =(algebraic-structures stream semigroup)=
- Semigroup.reduce: =(algebraic-structures semigroup reduce)=
- Monoid: =(algebraic-structures monoid)=
- Number (product): =(algebraic-structures number product monoid)=
- Number (sum): =(algebraic-structures number sum monoid)=
- List: =(algebraic-structures list monoid)=
- Vector: =(algebraic-structures vector monoid)=
- Stream: =(algebraic-structures stream monoid)=
- Monoid.fold: =(algebraic-structures monoid fold)=
- Group
- Number (product): =(algebraic-structures number product group)=
- Number (sum): =(algebraic-structures number sum group)=
- Foldable: =(algebraic-structures foldable)=
- List: =(algebraic-structures list foldable)=
- Vector: =(algebraic-structures vector foldable)=
- Stream: =(algebraic-structures stream foldable)=
- Reducible: =(algebraic-structures reducible)=
- List: =(algebraic-structures list reducible)=
- Vector: =(algebraic-structures vector reducible)=
- Stream: =(algebraic-structures stream reducible)=
- Functor: =(algebraic-structures functor)=
- List: =(algebraic-structures list functor)=
- Vector: =(algebraic-structures vector functor)=
- Stream: =(algebraic-structures stream functor)=
- Applicative: =(algebraic-structures applicative)=
- List: =(algebraic-structures list applicative)=
- List (zip): =(algebraic-structures list zip applicative)=
- Vector (zip): =(algebraic-structures vector zip applicative)=
- Stream: =(algebraic-structures stream applicative)=
- Stream (zip): =(algebraic-structures stream zip applicative)=
- Monad: =(algebraic-structures monad)=
- List: =(algebraic-structures list monad)=
- Stream: =(algebraic-structures stream monad)=
- Alternative: =(algebraic-structures alternative)=
- List: =(algebraic-structures list alternative)=
- Stream: =(algebraic-structures stream alternative)=
## Examples
- Monad
- [optonal](./examples/optional.scm)
- [state](./examples/optional.scm)
|