Ethiopian multiplication: Difference between revisions

→‎{{header|Picat}}: Moved into subsections, added {{out}}
(→‎{{header|Picat}}: Moved into subsections, added {{out}})
Line 4,119:
 
=={{header|Picat}}==
===Iterative===
<lang Picat>go =>
<lang Picat>ethiopian(Multiplier, Multiplicand) = ethiopian(Multiplier, Multiplicand,false).
 
println(ethiopian(17,34)),
 
ethiopian2(17,34,Z2),
println(Z2),
println(ethiopian(17,34,true)),
 
_ = random2(),
_ = ethiopian(random() mod 10000,random() mod 10000,true),
 
nl.
 
 
ethiopian(Multiplier, Multiplicand) = ethiopian(Multiplier, Multiplicand,false).
 
ethiopian(Multiplier, Multiplicand,Tutor) = Result =>
Line 4,157 ⟶ 4,143:
nl
end,
Result = Result1.</lang>
 
===Recursion===
 
{{trans|Prolog}}
% Inspired by the Prolog solution
<lang Picat>ethiopian2(First,Second,Product) =>
ethiopian2(First,Second,0,Product).
 
Line 4,174 ⟶ 4,160:
is_even(X) => X mod 2 = 0.</lang>
 
===Test===
Output:
<lang Picat>go =>
 
println(ethiopian(17,34)),
 
ethiopian2(17,34,Z2),
println(Z2),
println(ethiopian(17,34,true)),
 
_ = random2(),
_ = ethiopian(random() mod 10000,random() mod 10000,true),
 
nl.</lang>
 
{{out}}
<pre>578
578
Line 4,205 ⟶ 4,206:
=======
54271924</pre>
 
 
=={{header|PicoLisp}}==
495

edits