| 
									
										
										
										
											2008-02-25 20:37:43 -05:00
										 |  |  | USING: tools.test quotations math kernel sequences | 
					
						
							| 
									
										
										
										
											2009-02-23 21:27:05 -05:00
										 |  |  | assocs namespaces make compiler.units compiler ;
 | 
					
						
							| 
									
										
										
										
											2009-04-26 01:51:47 -04:00
										 |  |  | IN: compiler.tests.curry | 
					
						
							| 
									
										
										
										
											2007-09-20 18:09:08 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2007-12-24 21:54:45 -05:00
										 |  |  | [ 3 ] [ 5 [ [ 2 - ] curry call ] compile-call ] unit-test | 
					
						
							|  |  |  | [ 3 ] [ [ 5 [ 2 - ] curry call ] compile-call ] unit-test | 
					
						
							|  |  |  | [ 3 ] [ [ 5 2 [ - ] 2curry call ] compile-call ] unit-test | 
					
						
							|  |  |  | [ 3 ] [ 5 [ 2 [ - ] 2curry call ] compile-call ] unit-test | 
					
						
							|  |  |  | [ 3 ] [ 5 2 [ [ - ] 2curry call ] compile-call ] unit-test | 
					
						
							|  |  |  | [ 3 ] [ 5 2 [ [ - ] 2curry 9 swap call /i ] compile-call ] unit-test | 
					
						
							| 
									
										
										
										
											2008-12-17 20:17:37 -05:00
										 |  |  | [ 3 ] [ 5 2 [ [ - ] 2curry [ 9 ] dip call /i ] compile-call ] unit-test | 
					
						
							| 
									
										
										
										
											2007-12-24 21:54:45 -05:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-03-29 21:36:58 -04:00
										 |  |  | [ -10 -20 ] [ 10 20 -1 [ [ * ] curry bi@ ] compile-call ] unit-test | 
					
						
							| 
									
										
										
										
											2007-12-24 21:54:45 -05:00
										 |  |  | 
 | 
					
						
							|  |  |  | [ [ 5 2 - ] ] [ 5 [ [ 2 - ] curry ] compile-call >quotation ] unit-test | 
					
						
							|  |  |  | [ [ 5 2 - ] ] [ [ 5 [ 2 - ] curry ] compile-call >quotation ] unit-test | 
					
						
							|  |  |  | [ [ 5 2 - ] ] [ [ 5 2 [ - ] 2curry ] compile-call >quotation ] unit-test | 
					
						
							|  |  |  | [ [ 5 2 - ] ] [ 5 [ 2 [ - ] 2curry ] compile-call >quotation ] unit-test | 
					
						
							|  |  |  | [ [ 5 2 - ] ] [ 5 2 [ [ - ] 2curry ] compile-call >quotation ] unit-test | 
					
						
							| 
									
										
										
										
											2007-09-20 18:09:08 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | [ [ 6 2 + ] ] | 
					
						
							|  |  |  | [ | 
					
						
							|  |  |  |     2 5
 | 
					
						
							| 
									
										
										
										
											2008-12-17 20:17:37 -05:00
										 |  |  |     [ [ [ + ] curry ] dip 0 < [ -2 ] [ 6 ] if swap curry ] | 
					
						
							| 
									
										
										
										
											2007-12-24 21:54:45 -05:00
										 |  |  |     compile-call >quotation | 
					
						
							| 
									
										
										
										
											2007-09-20 18:09:08 -04:00
										 |  |  | ] unit-test | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | [ 8 ] | 
					
						
							|  |  |  | [ | 
					
						
							|  |  |  |     2 5
 | 
					
						
							| 
									
										
										
										
											2008-12-17 20:17:37 -05:00
										 |  |  |     [ [ [ + ] curry ] dip 0 < [ -2 ] [ 6 ] if swap curry call ] | 
					
						
							| 
									
										
										
										
											2007-12-24 21:54:45 -05:00
										 |  |  |     compile-call | 
					
						
							| 
									
										
										
										
											2007-09-20 18:09:08 -04:00
										 |  |  | ] unit-test | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-02-23 21:27:05 -05:00
										 |  |  | : foobar ( quot: ( -- ) -- )
 | 
					
						
							| 
									
										
										
										
											2009-05-10 18:03:41 -04:00
										 |  |  |     [ call ] keep swap [ foobar ] [ drop ] if ; inline recursive
 | 
					
						
							| 
									
										
										
										
											2007-09-20 18:09:08 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2007-12-24 21:54:45 -05:00
										 |  |  | [ ] [ [ [ f ] foobar ] compile-call ] unit-test | 
					
						
							| 
									
										
										
										
											2007-09-20 18:09:08 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2007-12-24 21:54:45 -05:00
										 |  |  | [ { 6 7 8 } ] [ { 1 2 3 } 5 [ [ + ] curry map ] compile-call ] unit-test | 
					
						
							|  |  |  | [ { 6 7 8 } ] [ { 1 2 3 } [ 5 [ + ] curry map ] compile-call ] unit-test | 
					
						
							| 
									
										
										
										
											2007-09-20 18:09:08 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-02-23 21:27:05 -05:00
										 |  |  | : funky-assoc>map ( assoc quot -- seq )
 | 
					
						
							| 
									
										
										
										
											2007-09-20 18:09:08 -04:00
										 |  |  |     [ | 
					
						
							|  |  |  |         [ call f ] curry assoc-find 3drop
 | 
					
						
							|  |  |  |     ] { } make ; inline
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | [ t ] [ | 
					
						
							| 
									
										
										
										
											2007-12-24 21:54:45 -05:00
										 |  |  |     global [ [ drop , ] funky-assoc>map ] compile-call | 
					
						
							| 
									
										
										
										
											2007-09-20 18:09:08 -04:00
										 |  |  |     global keys =
 | 
					
						
							|  |  |  | ] unit-test | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2007-12-24 21:54:45 -05:00
										 |  |  | [ 3 ] [ 1 [ 2 ] [ curry [ 3 ] [ 4 ] if ] compile-call ] unit-test | 
					
						
							| 
									
										
										
										
											2007-09-20 18:09:08 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2007-12-24 21:54:45 -05:00
										 |  |  | [ 3 ] [ t [ 3 [ ] curry 4 [ ] curry if ] compile-call ] unit-test | 
					
						
							| 
									
										
										
										
											2007-09-20 18:09:08 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2007-12-24 21:54:45 -05:00
										 |  |  | [ 3 ] [ t [ 3 [ ] curry [ 4 ] if ] compile-call ] unit-test | 
					
						
							| 
									
										
										
										
											2007-09-20 18:09:08 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2007-12-24 21:54:45 -05:00
										 |  |  | [ 4 ] [ f [ 3 [ ] curry 4 [ ] curry if ] compile-call ] unit-test | 
					
						
							| 
									
										
										
										
											2007-09-20 18:09:08 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2007-12-24 21:54:45 -05:00
										 |  |  | [ 4 ] [ f [ [ 3 ] 4 [ ] curry if ] compile-call ] unit-test |