Greatest common divisor: Difference between revisions

m
no edit summary
(Added BBC BASIC)
mNo edit summary
Line 1,347:
ProcedureReturn y
EndProcedure</lang>
 
=={{header|Purity}}==
<lang Purity>
data Iterate = f => FoldNat <const id, g => $g . $f>
 
data Sub = Iterate Pred
data IsZero = <const True, const False> . UnNat
 
data Eq = FoldNat
<
const IsZero,
eq => n => IfThenElse (IsZero $n)
False
($eq (Pred $n))
>
 
data step = gcd => n => m =>
IfThenElse (Eq $m $n)
(Pair $m $n)
(IfThenElse (Compare Leq $n $m)
($gcd (Sub $m $n) $m)
($gcd (Sub $n $m) $n))
 
data gcd = Iterate (gcd => uncurry (step (curry $gcd)))
</lang>
 
=={{header|Python}}==
Anonymous user