on 492ae2f help sign in
55 lines 911 B history raw
1### `++cue`
3Unpack atom to noun
5Produces a noun unpacked from atom `a`. The inverse of jam.
7Accepts
8-------
10`a` is an atom.
12Produces
13--------
15A `++noun`.
17Source
18------
20 ++ cue :: unpack
21 ~/ %cue
22 |= a/@
23 ^- *
24 =+ b=0
25 =+ m=`(map @ *)`~
26 =< q
27 |- ^- {p/@ q/* r/(map @ *)}
28 ?: =(0 (cut 0 [b 1] a))
29 =+ c=(rub +(b) a)
30 [+(p.c) q.c (~(put by m) b q.c)]
31 =+ c=(add 2 b)
32 ?: =(0 (cut 0 [+(b) 1] a))
33 =+ u=$(b c)
34 =+ v=$(b (add p.u c), m r.u)
35 =+ w=[q.u q.v]
36 [(add 2 (add p.u p.v)) w (~(put by r.v) b w)]
37 =+ d=(rub c a)
38 [(add 2 p.d) (need (~(get by m) q.d)) m]
39 ::
42Examples
43--------
45 ~zod/try=> (cue 12)
46 1
47 ~zod/try=> (cue 817)
48 [1 1]
49 ~zod/try=> (cue 4.657)
50 [1 2]
51 ~zod/try=> (cue 39.689)
52 [0 19]
55***