math.parser: remove digits>integer.
							parent
							
								
									b5a671cd88
								
							
						
					
					
						commit
						296974a057
					
				| 
						 | 
				
			
			@ -28,11 +28,6 @@ $nl
 | 
			
		|||
 | 
			
		||||
ABOUT: "number-strings"
 | 
			
		||||
 | 
			
		||||
HELP: digits>integer
 | 
			
		||||
{ $values { "seq" "a sequence of integers" } { "radix" "an integer between 2 and 16" } { "n/f" { $maybe integer } } }
 | 
			
		||||
{ $description "Converts a sequence of digits (with most significant digit first) into an integer." }
 | 
			
		||||
{ $notes "This is one of the factors of " { $link string>number } "." } ;
 | 
			
		||||
 | 
			
		||||
HELP: >digit
 | 
			
		||||
{ $values { "n" "an integer between 0 and 15" } { "ch" "a character" } }
 | 
			
		||||
{ $description "Outputs a character representation of a digit." }
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -16,6 +16,12 @@ PRIVATE>
 | 
			
		|||
                             [ CHAR: a 10 - - dup 10 < [ drop 255 ] when ]
 | 
			
		||||
    } cond ; inline
 | 
			
		||||
 | 
			
		||||
: string>digits ( str -- digits )
 | 
			
		||||
    [ digit> ] B{ } map-as ; inline
 | 
			
		||||
 | 
			
		||||
: >digit ( n -- ch )
 | 
			
		||||
    dup 10 < [ CHAR: 0 + ] [ 10 - CHAR: a + ] if ; inline
 | 
			
		||||
 | 
			
		||||
ERROR: invalid-radix radix ;
 | 
			
		||||
 | 
			
		||||
<PRIVATE
 | 
			
		||||
| 
						 | 
				
			
			@ -307,25 +313,6 @@ PRIVATE>
 | 
			
		|||
: dec> ( str -- n/f ) 10 base> ; inline
 | 
			
		||||
: hex> ( str -- n/f ) 16 base> ; inline
 | 
			
		||||
 | 
			
		||||
: string>digits ( str -- digits )
 | 
			
		||||
    [ digit> ] B{ } map-as ; inline
 | 
			
		||||
 | 
			
		||||
<PRIVATE
 | 
			
		||||
 | 
			
		||||
: (digits>integer) ( valid? accum digit radix -- valid? accum )
 | 
			
		||||
    2dup < [ swapd * + ] [ 4drop f 0 ] if ; inline
 | 
			
		||||
 | 
			
		||||
: each-digit ( seq radix quot -- n/f )
 | 
			
		||||
    [ t 0 ] 3dip curry each swap [ drop f ] unless ; inline
 | 
			
		||||
 | 
			
		||||
PRIVATE>
 | 
			
		||||
 | 
			
		||||
: digits>integer ( seq radix -- n/f )
 | 
			
		||||
    [ (digits>integer) ] each-digit ; inline
 | 
			
		||||
 | 
			
		||||
: >digit ( n -- ch )
 | 
			
		||||
    dup 10 < [ CHAR: 0 + ] [ 10 - CHAR: a + ] if ; inline
 | 
			
		||||
 | 
			
		||||
<PRIVATE
 | 
			
		||||
 | 
			
		||||
CONSTANT: TENS B{
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue