Four bit adder: Difference between revisions

Added PicoLisp
(Added a solution for MATLAB)
(Added PicoLisp)
Line 898:
11
12</lang>
 
=={{header|PicoLisp}}==
<lang PicoLisp>(de halfAdder (A B) #> (Carry . Sum)
(cons
(and A B)
(xor A B) ) )
 
(de fullAdder (A B C) #> (Carry . Sum)
(let (Ha1 (halfAdder C A) Ha2 (halfAdder (cdr Ha1) B))
(cons
(or (car Ha1) (car Ha2))
(cdr Ha2) ) ) )
 
(de 4bitsAdder (A4 A3 A2 A1 B4 B3 B2 B1) #> (V S4 S3 S2 S1)
(let
(Fa1 (fullAdder A1 B1)
Fa2 (fullAdder A2 B2 (car Fa1))
Fa3 (fullAdder A3 B3 (car Fa2))
Fa4 (fullAdder A4 B4 (car Fa3)) )
(list
(car Fa4)
(cdr Fa4)
(cdr Fa3)
(cdr Fa2)
(cdr Fa1) ) ) )</lang>
Output:
<pre>: (4bitsAdder NIL NIL NIL T NIL NIL NIL T)
-> (NIL NIL NIL T NIL)
 
: (4bitsAdder NIL T NIL NIL NIL NIL T T)
-> (NIL NIL T T T)
 
: (4bitsAdder NIL T T T NIL T T T)
-> (NIL T T T NIL)
 
: (4bitsAdder T T T T NIL NIL NIL T)
-> (T NIL NIL NIL NIL)</pre>
 
=={{header|Python}}==
Anonymous user