math.text.english: support ratio, float, complex.
parent
2370ed3918
commit
c1bb600335
|
@ -1,7 +1,8 @@
|
||||||
! Copyright (c) 2007, 2008 Aaron Schaefer.
|
! Copyright (c) 2007, 2008 Aaron Schaefer.
|
||||||
! See http://factorcode.org/license.txt for BSD license.
|
! See http://factorcode.org/license.txt for BSD license.
|
||||||
USING: combinators.short-circuit grouping kernel math math.parser
|
USING: combinators.short-circuit grouping kernel math
|
||||||
math.text.utils namespaces sequences ;
|
math.functions math.parser math.text.utils namespaces sequences
|
||||||
|
splitting ;
|
||||||
IN: math.text.english
|
IN: math.text.english
|
||||||
|
|
||||||
<PRIVATE
|
<PRIVATE
|
||||||
|
@ -96,3 +97,22 @@ GENERIC: number>text ( n -- str )
|
||||||
M: integer number>text
|
M: integer number>text
|
||||||
[ "zero" ] [ [ (number>text) ] with-scope ] if-zero ;
|
[ "zero" ] [ [ (number>text) ] with-scope ] if-zero ;
|
||||||
|
|
||||||
|
M: ratio number>text
|
||||||
|
>fraction [ number>text ] bi@ " divided by " glue ;
|
||||||
|
|
||||||
|
M: float number>text
|
||||||
|
number>string "." split1 [
|
||||||
|
"-" ?head
|
||||||
|
[ string>number number>text ]
|
||||||
|
[ [ "negative " prepend ] when ] bi*
|
||||||
|
] [
|
||||||
|
[ CHAR: 0 - small-numbers ] { } map-as " " join
|
||||||
|
] bi* " point " glue ;
|
||||||
|
|
||||||
|
M: complex number>text
|
||||||
|
>rect
|
||||||
|
[ number>text " i" append ]
|
||||||
|
[
|
||||||
|
[ 0 < " minus " " plus " ? ]
|
||||||
|
[ abs number>text " j" append ] bi
|
||||||
|
] bi* 3append ;
|
||||||
|
|
Loading…
Reference in New Issue