binary string
This commit is contained in:
parent
4e2a1d21e0
commit
dab7f4eb2a
26
demo.modal
26
demo.modal
|
@ -41,6 +41,13 @@
|
|||
<> (reverse' ?a nil) (?a)
|
||||
<> (reverse' ?a (?h ?t)) (reverse' (?h ?a) ?t)
|
||||
|
||||
-- map
|
||||
<> (map ?f (list ?l)) (map/l map/f ?f ?l)
|
||||
<> (map/f ?f (?h ?t)) (?f ?h (map/f ?f ?t))
|
||||
<> (map/f ?f (?h)) (map/r (?f ?h))
|
||||
<> (?h (map/r ?t)) (map/r (?h ?t))
|
||||
<> (map/l map/r ?l) (list ?l)
|
||||
|
||||
-- ( normalize, remove trailing zeros )
|
||||
-- ( currently zero is (0 nil) though arguably it could be nil )
|
||||
-- ( that change would require auditing our rules )
|
||||
|
@ -57,6 +64,18 @@
|
|||
<> (f (?u) nil) (nil)
|
||||
<> (f (?u) (?h ?t)) (((mul ?h ?u) f ((mul ?u ten)) ?t))
|
||||
|
||||
-- ( to binary str )
|
||||
<> ((bstr ?x)) ((bstr1 ?x))
|
||||
<> ((bstr1 (0 nil))) ((0 (b 0)))
|
||||
<> ((bstr1 (1 nil))) ((0 (b 1)))
|
||||
<> ((bstr1 (0 (0 ?c)))) ((bstr2 ?c (0 0)))
|
||||
<> ((bstr1 (1 (0 ?c)))) ((bstr2 ?c (0 1)))
|
||||
<> ((bstr1 (0 (1 ?c)))) ((bstr2 ?c (1 0)))
|
||||
<> ((bstr1 (1 (1 ?c)))) ((bstr2 ?c (1 1)))
|
||||
<> ((bstr2 nil ?z)) ((stringify (0 (b ?z))))
|
||||
<> ((bstr2 (0 ?t) ?z)) ((bstr2 ?t (0 ?z)))
|
||||
<> ((bstr2 (1 ?t) ?z)) ((bstr2 ?t (1 ?z)))
|
||||
|
||||
-- ( to string: TODO, need division for this one )
|
||||
<> ((str ?x)) ((str1 (divmod ?x ten) nil))
|
||||
<> ((str1 (?q ?r) ?a)) ((str2 ?q (?r ?a)))
|
||||
|
@ -100,8 +119,6 @@
|
|||
<> ((digitize 8 ?a)) ((stringify (8 ?a)))
|
||||
<> ((digitize 9 ?a)) ((stringify (9 ?a)))
|
||||
|
||||
<> ((stringify ?*)) (?*)
|
||||
|
||||
-- ( comparison operartions )
|
||||
<> ((cmp ?x ?y)) ((cmpc #eq ?x ?y))
|
||||
<> ((cmpc ?e nil nil)) (?e)
|
||||
|
@ -198,4 +215,7 @@
|
|||
<> ((mod ?x ?y)) ((mod' (divmod ?x ?y)))
|
||||
<> ((mod' (?q ?r))) (?r)
|
||||
|
||||
(str (mul (int 235) (int 345)))
|
||||
-- ( stringify )
|
||||
<> ((stringify ?*)) (?*)
|
||||
|
||||
(bstr (mul (int 2399) (int 3499)))
|
||||
|
|
Loading…
Reference in New Issue