math.parser: (format-float) can only be flushable
parent
bbd71ae975
commit
88b2ed482c
|
@ -404,7 +404,7 @@ CONSTANT: all-primitives {
|
||||||
"(format-float)" ( n fill width precision format locale -- byte-array )
|
"(format-float)" ( n fill width precision format locale -- byte-array )
|
||||||
"format_float"
|
"format_float"
|
||||||
{ float byte-array fixnum fixnum byte-array byte-array } { byte-array }
|
{ float byte-array fixnum fixnum byte-array byte-array } { byte-array }
|
||||||
make-foldable
|
make-flushable
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
USING: layouts literals math math.parser.private sequences tools.test ;
|
USING: kernel layouts literals math math.parser.private sequences
|
||||||
|
strings tools.test ;
|
||||||
IN: math.parser
|
IN: math.parser
|
||||||
|
|
||||||
{ f }
|
{ f }
|
||||||
|
@ -473,3 +474,16 @@ unit-test
|
||||||
{ "" } [
|
{ "" } [
|
||||||
33.4 "" 4 4 "f" "missing" format-float
|
33.4 "" 4 4 "f" "missing" format-float
|
||||||
] unit-test
|
] unit-test
|
||||||
|
|
||||||
|
! Literal byte arrays are mutable, so (format-float) isn't foldable.
|
||||||
|
: trouble ( -- str ba )
|
||||||
|
155000.0 B{ } -1 3 B{ 69 0 } [
|
||||||
|
B{ 67 0 } (format-float) >string
|
||||||
|
] keep ;
|
||||||
|
|
||||||
|
{
|
||||||
|
"1.55E+05"
|
||||||
|
"1.550e+05"
|
||||||
|
} [
|
||||||
|
trouble CHAR: e 0 rot set-nth trouble drop
|
||||||
|
] unit-test
|
||||||
|
|
Loading…
Reference in New Issue