Four bit adder: Difference between revisions
Content added Content deleted
(Added a solution for MATLAB) |
(Added PicoLisp) |
||
Line 898: | Line 898: | ||
11 |
11 |
||
12</lang> |
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}}== |
=={{header|Python}}== |