blob: b327962efbf0bdb0267546bdfc785b633a36b705 (
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
|
... This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0.
... If a copy of the MPL was not distributed with this file, You can obtain one at https://mozilla.org/MPL/2.0/.
(.require
[library
[lux (.except)
["$" documentation]
[data
[text (.only \n)
["%" \\format (.only format)]]
[collection
["[0]" list]]]]]
[\\library
["[0]" /]]
["[0]" /
["[1][0]" free]])
(def .public documentation
(List $.Documentation)
(list.partial ($.module /._
"")
($.definition (/.Monad it)
(format "A monad is a monoid in the category of endofunctors."
\n "What's the problem?"))
($.definition /.do
"Macro for easy concatenation of monadic operations."
($.example (do monad
[y (f1 x)
z (f2 z)]
(in (f3 z)))))
($.definition /.then
"Apply a function with monadic effects to a monadic value and yield a new monadic value."
($.example (then monad function)))
($.definition /.all
"Run all the monadic values in the list and produce a list of the base values."
($.example (all monad)))
($.definition /.each
"Apply a monadic function to all values in a list."
($.example (each monad function items)))
($.definition /.only
"Filter the values in a list with a monadic function."
($.example (only monad predicate items)))
($.definition /.mix
"Mix a list with a monadic function."
($.example (mix monad function initial_value items)))
/free.documentation
))
|