Four bit adder: Difference between revisions
Added Wren
MaiconSoft (talk | contribs) No edit summary |
(Added Wren) |
||
Line 6,127:
end struct;</lang>
=={{header|Wren}}==
{{trans|Go}}
<lang ecmascript>var xor = Fn.new { |a, b| a&(~b) | b&(~a) }
var ha = Fn.new { |a, b| [xor.call(a, b), a & b] }
var fa = Fn.new { |a, b, c0|
var res = ha.call(a, c0)
var sa = res[0]
var ca = res[1]
res = ha.call(sa, b)
return [res[0], ca | res[1]]
}
var add4 = Fn.new { |a3, a2, a1, a0, b3, b2, b1, b0|
var res = fa.call(a0, b0, 0)
var s0 = res[0]
var c0 = res[1]
res = fa.call(a1, b1, c0)
var s1 = res[0]
var c1 = res[1]
res = fa.call(a2, b2, c1)
var s2 = res[0]
var c2 = res[1]
res = fa.call(a3, b3, c2)
return [res[1], res[0], s2, s1, s0]
}
System.print(add4.call(1, 0, 1, 0, 1, 0, 0, 1))</lang>
{{out}}
<pre>
[1, 0, 0, 1, 1]
</pre>
=={{header|XPL0}}==
|