| 
									
										
										
										
											2013-05-04 20:08:48 -04:00
										 |  |  | ! Copyright (C) 2013 Loryn Jenkins. | 
					
						
							|  |  |  | ! See http://factorcode.org/license.txt for BSD license. | 
					
						
							| 
									
										
										
										
											2013-05-06 11:34:32 -04:00
										 |  |  | USING: kernel math ;
 | 
					
						
							| 
									
										
										
										
											2013-05-04 20:08:48 -04:00
										 |  |  | IN: math.combinators | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-05-06 11:34:32 -04:00
										 |  |  | : if-negative ( ..a n true: ( ..a n -- ..b ) false: ( ..a n -- ..b ) -- ..b )
 | 
					
						
							|  |  |  |     [ dup 0 < ] 2dip if ; inline
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | : if-positive ( ..a n true: ( ..a n -- ..b ) false: ( ..a n -- ..b ) -- ..b )
 | 
					
						
							|  |  |  |     [ dup 0 > ] 2dip if ; inline
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-05-06 11:45:29 -04:00
										 |  |  | : when-negative ( ..a n quot: ( ..a n -- ..b ) -- ..b )
 | 
					
						
							| 
									
										
										
										
											2013-05-06 11:34:32 -04:00
										 |  |  |     [ ] if-negative ; inline
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-05-06 11:45:29 -04:00
										 |  |  | : when-positive ( ..a n quot: ( ..a n -- ..b ) -- ..b )
 | 
					
						
							| 
									
										
										
										
											2013-05-06 11:34:32 -04:00
										 |  |  |     [ ] if-positive ; inline
 | 
					
						
							| 
									
										
										
										
											2013-05-06 11:45:29 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | : unless-negative ( ..a n quot: ( ..a n -- ..b ) -- ..b )
 | 
					
						
							|  |  |  |     [ ] swap if-negative ; inline
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | : unless-positive ( ..a n quot: ( ..a n -- ..b ) -- ..b )
 | 
					
						
							|  |  |  |     [ ] swap if-positive ; inline
 |