From: Tim Vaughan Date: Mon, 19 Dec 2016 18:50:27 +0000 (+1300) Subject: Implemented fix:gcd. X-Git-Url: https://thelambdalab.xyz/gitweb/index.cgi?a=commitdiff_plain;h=007ee2a4d8f3b87779599f06512973c92d0640e8;p=scheme.forth.jl.git Implemented fix:gcd. --- diff --git a/src/scheme-primitives.4th b/src/scheme-primitives.4th index 5ec154b..7e123f7 100644 --- a/src/scheme-primitives.4th +++ b/src/scheme-primitives.4th @@ -223,12 +223,27 @@ swap abs swap ; 1 make-fa-primitive fix:abs +: sort-pair + 2dup > if + swap + then +; ( Find the GCD of n1 and n2 where n2 < n1. ) : gcd ( n1 n2 -- m ) - + sort-pair + over 0= if + swap drop + else + over mod + recurse + then ; +:noname ( fixnum fixnum -- fixnum' ) + drop swap drop gcd fixnum-type +; 2 make-fa-primitive fix:gcd + \ --- Flonums --- :noname ( flonum flonum -- bool )