The Lambda Lab
/
projects
/
scheme.forth.jl.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
613b910
)
Implemented fix:gcd.
author
Tim Vaughan
<tgvaughan@gmail.com>
Mon, 19 Dec 2016 18:50:27 +0000
(07:50 +1300)
committer
Tim Vaughan
<tgvaughan@gmail.com>
Mon, 19 Dec 2016 18:50:27 +0000
(07:50 +1300)
src/scheme-primitives.4th
patch
|
blob
|
history
diff --git
a/src/scheme-primitives.4th
b/src/scheme-primitives.4th
index
5ec154b
..
7e123f7
100644
(file)
--- 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 )