on d452c09 help sign in
43 lines 765 B history raw
1### `++cold`
3Replace with constant
5Parser modifier. Accepts a `++rule` `sef` and produces a parser that
6produces a constant `cus`, assuming `sef` is successful.
8Accepts
9-------
11`cus` is a constant noun.
13`sef` is a `++rule`.
15Produces
16--------
18An `++edge`.
20Source
21------
23 ++ cold :: replace w+ constant
24 ~/ %cold
25 |* {cus/* sef/rule}
26 ~/ %fun
27 |= tub/nail
28 =+ vex=(sef tub)
29 ?~ q.vex
30 vex
31 [p=p.vex q=[~ u=[p=cus q=q.u.q.vex]]]
33Examples
34--------
36 ~zod/try=> ((cold %foo (just 'a')) [[1 1] "abc"])
37 [p=[p=1 q=2] q=[~ u=[p=%foo q=[p=[p=1 q=2] q="bc"]]]]
38 ~zod/try=> ((cold %foo (just 'a')) [[1 1] "bc"])
39 [p=[p=1 q=1] q=~]
43***