From ff72d10fda2c1a2c2cc329909b53ebb2ec67cd15 Mon Sep 17 00:00:00 2001 From: John Benediktsson Date: Thu, 28 Mar 2013 14:31:55 -0700 Subject: [PATCH] math.parser: don't use variables in M\ ratio >base. --- core/math/parser/parser.factor | 30 ++++++------------------------ 1 file changed, 6 insertions(+), 24 deletions(-) diff --git a/core/math/parser/parser.factor b/core/math/parser/parser.factor index 7cdd2f9854..1691e6a042 100644 --- a/core/math/parser/parser.factor +++ b/core/math/parser/parser.factor @@ -402,20 +402,6 @@ GENERIC# >base 1 ( n radix -- str ) : >oct ( n -- str ) 8 >base ; inline : >hex ( n -- str ) 16 >base ; inline -base) ( n -- str ) radix get positive>base ; - -PRIVATE> - M: integer >base over 0 = [ 2drop "0" @@ -428,17 +414,13 @@ M: integer >base ] if ; M: ratio >base + [ [ 0 < ] [ abs 1 /mod ] bi ] + [ [ positive>base ] curry ] bi* [ - dup 0 < negative? set - abs 1 /mod - [ [ "" ] [ (>base) sign append ] if-zero ] - [ - [ numerator (>base) ] - [ denominator (>base) ] bi - "/" glue - ] bi* append - negative? get [ CHAR: - prefix ] when - ] with-radix ; + [ [ numerator ] [ denominator ] bi ] dip bi@ "/" glue + ] keep rot [ drop ] [ + swap call pick "-" "+" ? rot 3append + ] if-zero swap [ CHAR: - prefix ] when ; : fix-float ( str -- newstr ) {