Skip to content

Commit 406668a

Browse files
committed
simpler add
1 parent 9bc1db1 commit 406668a

File tree

1 file changed

+3
-26
lines changed

1 file changed

+3
-26
lines changed

tests/negabinary-scott/solution.lc

Lines changed: 3 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -23,14 +23,6 @@ snd = \ xy . xy \ _x y . y
2323
bimap = \ fn xy . xy \ x y . Pair (fn x) (fn y)
2424
Y2 = B Y (C (B bimap T))
2525

26-
#import scott-triple.lc
27-
Triple = \ x y z f . f x y z
28-
fst3 = \ xyz . xyz \ x _y _z . x
29-
snd3 = \ xyz . xyz \ _x y _z . y
30-
thd3 = \ xyz . xyz \ _x _y z . z
31-
trimap = \ fn xyz . xyz \ x y z . Triple (fn x) (fn y) (fn z)
32-
Y3 = B Y (C (B trimap T))
33-
3426
#import scott-quad.lc
3527
Quad = \ w x y z f . f w x y z
3628
fst4 = \ wxyz . wxyz \ w _x _y _z . w
@@ -55,24 +47,9 @@ Enum = Y2 (Pair (T \ succ pred . \ m . m 1 Bit1 (B nega-dbl pred)) # succ
5547
succ = fst Enum
5648
pred = snd Enum
5749

58-
Num = Y3 (Triple (T \ add adc adb .
59-
\ m n . m n # add
60-
( \ zm . n m ( \ zn . nega-dbl (add zm zn) ) ( \ zn . Bit1 (add zm zn) ) )
61-
( \ zm . n m ( \ zn . Bit1 (add zm zn) ) ( \ zn . nega-dbl (adb zm zn) ) )
62-
)
63-
(T \ add adc adb .
64-
\ m n . m (succ n) # add-with-carry
65-
( \ zm . n (succ m) ( \ zn . Bit1 (add zm zn) ) ( \ zn . nega-dbl (adb zm zn) ) )
66-
( \ zm . n (succ m) ( \ zn . nega-dbl (adb zm zn) ) ( \ zn . Bit1 (adb zm zn) ) )
67-
)
68-
(T \ add adc adb .
69-
\ m n . m (pred n) # add-with-borrow
70-
( \ zm . n (pred m) ( \ zn . Bit1 (adc zm zn) ) ( \ zn . nega-dbl (add zm zn) ) )
71-
( \ zm . n (pred m) ( \ zn . nega-dbl (add zm zn) ) ( \ zn . Bit1 (add zm zn) ) )
72-
) )
73-
add = fst3 Num
74-
adc = snd3 Num
75-
adb = thd3 Num
50+
add = \ m n . m n
51+
( \ zm . n m ( \ zn . nega-dbl (add zm zn) ) ( \ zn . Bit1 (add zm zn) ) )
52+
( \ zm . n m ( \ zn . Bit1 (add zm zn) ) ( \ zn . nega-dbl (pred (add zm zn)) ) )
7653

7754
negate = \ n . add n (nega-dbl n)
7855
sub = \ m n . add m (negate n)

0 commit comments

Comments
 (0)