19 lines
		
	
	
		
			419 B
		
	
	
	
		
			Factor
		
	
	
			
		
		
	
	
			19 lines
		
	
	
		
			419 B
		
	
	
	
		
			Factor
		
	
	
USING: kernel sequences math stack-checker effects accessors
 | 
						|
macros fry combinators.short-circuit ;
 | 
						|
IN: combinators.short-circuit.smart
 | 
						|
 | 
						|
<PRIVATE
 | 
						|
 | 
						|
ERROR: cannot-determine-arity ;
 | 
						|
 | 
						|
: arity ( quots -- n )
 | 
						|
    first infer
 | 
						|
    dup terminated?>> [ cannot-determine-arity ] when
 | 
						|
    effect-height neg 1 + ;
 | 
						|
 | 
						|
PRIVATE>
 | 
						|
 | 
						|
MACRO: && ( quots -- quot ) dup arity '[ _ _ n&& ] ;
 | 
						|
 | 
						|
MACRO: || ( quots -- quot ) dup arity '[ _ _ n|| ] ;
 |