math, syntax: document hexadecimal float literal syntax
							parent
							
								
									a2b864e4f5
								
							
						
					
					
						commit
						aad68418d2
					
				| 
						 | 
					@ -5,7 +5,7 @@ IN: math.parser
 | 
				
			||||||
ARTICLE: "number-strings" "Converting between numbers and strings"
 | 
					ARTICLE: "number-strings" "Converting between numbers and strings"
 | 
				
			||||||
"These words only convert between real numbers and strings. Complex numbers are constructed by the parser (" { $link "parser" } ") and printed by the prettyprinter (" { $link "prettyprint" } ")."
 | 
					"These words only convert between real numbers and strings. Complex numbers are constructed by the parser (" { $link "parser" } ") and printed by the prettyprinter (" { $link "prettyprint" } ")."
 | 
				
			||||||
$nl
 | 
					$nl
 | 
				
			||||||
"Note that only integers can be converted to and from strings using a representation other than base 10. Calling a word such as " { $link >oct } " on a float will give a result in base 10."
 | 
					"Integers can be converted to and from arbitrary bases. Floating point numbers can only be converted to and from base 10 and 16."
 | 
				
			||||||
$nl
 | 
					$nl
 | 
				
			||||||
"Converting numbers to strings:"
 | 
					"Converting numbers to strings:"
 | 
				
			||||||
{ $subsection number>string }
 | 
					{ $subsection number>string }
 | 
				
			||||||
| 
						 | 
					@ -93,7 +93,19 @@ HELP: >oct
 | 
				
			||||||
 | 
					
 | 
				
			||||||
HELP: >hex
 | 
					HELP: >hex
 | 
				
			||||||
{ $values { "n" real } { "str" string } }
 | 
					{ $values { "n" real } { "str" string } }
 | 
				
			||||||
{ $description "Outputs a string representation of a number using base 16." } ;
 | 
					{ $description "Outputs a string representation of a number using base 16." }
 | 
				
			||||||
 | 
					{ $examples
 | 
				
			||||||
 | 
					    { $example
 | 
				
			||||||
 | 
					        "USING: math.parser prettyprint ;"
 | 
				
			||||||
 | 
					        "3735928559 >hex ."
 | 
				
			||||||
 | 
					        "\"deadbeef\""
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    { $example
 | 
				
			||||||
 | 
					        "USING: math.parser prettyprint ;"
 | 
				
			||||||
 | 
					        "-15.5 >hex ."
 | 
				
			||||||
 | 
					        "\"-f.8p0\""
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					} ;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
HELP: string>float ( str -- n/f )
 | 
					HELP: string>float ( str -- n/f )
 | 
				
			||||||
{ $values { "str" string } { "n/f" "a real number or " { $link f } } }
 | 
					{ $values { "str" string } { "n/f" "a real number or " { $link f } } }
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -59,20 +59,25 @@ ARTICLE: "syntax-ratios" "Ratio syntax"
 | 
				
			||||||
"More information on ratios can be found in " { $link "rationals" } ;
 | 
					"More information on ratios can be found in " { $link "rationals" } ;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
ARTICLE: "syntax-floats" "Float syntax"
 | 
					ARTICLE: "syntax-floats" "Float syntax"
 | 
				
			||||||
"Floating point literals must contain a decimal point, and may contain an exponent:"
 | 
					"Floating point literals can be input in base 10 or 16. Base 10 literals must contain a decimal point, and may contain an exponent after " { $snippet "e" } ":"
 | 
				
			||||||
{ $code
 | 
					{ $code
 | 
				
			||||||
    "10.5"
 | 
					    "10.5"
 | 
				
			||||||
    "-3.1456"
 | 
					    "-3.1456"
 | 
				
			||||||
    "7.e13"
 | 
					    "7.e13"
 | 
				
			||||||
    "1.0e-5"
 | 
					    "1.0e-5"
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
"There are three special float values:"
 | 
					"Base 16 literals use " { $snippet "p" } " instead of " { $snippet "e" } " for the exponent, which is still decimal:"
 | 
				
			||||||
 | 
					{ $example
 | 
				
			||||||
 | 
					    "10.125 HEX: 1.44p3 = ."
 | 
				
			||||||
 | 
					    "t"
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					"Syntax for special float values:"
 | 
				
			||||||
{ $table
 | 
					{ $table
 | 
				
			||||||
{ "Positive infinity" { $snippet "1/0." } }
 | 
					{ "Positive infinity" { $snippet "1/0." } }
 | 
				
			||||||
{ "Negative infinity" { $snippet "-1/0." } }
 | 
					{ "Negative infinity" { $snippet "-1/0." } }
 | 
				
			||||||
{ "Not-a-number" { $snippet "0/0." } }
 | 
					{ "Not-a-number" { $snippet "0/0." } }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
"A Not-a-number with an arbitrary payload can be parsed in:"
 | 
					"A Not-a-number with an arbitrary payload can also be parsed in:"
 | 
				
			||||||
{ $subsection POSTPONE: NAN: }
 | 
					{ $subsection POSTPONE: NAN: }
 | 
				
			||||||
"More information on floats can be found in " { $link "floats" } "." ;
 | 
					"More information on floats can be found in " { $link "floats" } "." ;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue