62 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			Factor
		
	
	
		
			Executable File
		
	
			
		
		
	
	
			62 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			Factor
		
	
	
		
			Executable File
		
	
| USING: tools.test quotations math kernel sequences
 | |
| assocs namespaces compiler.units ;
 | |
| IN: compiler.tests
 | |
| 
 | |
| [ 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
 | |
| [ 3 ] [ 5 2 [ [ - ] 2curry >r 9 r> call /i ] compile-call ] unit-test
 | |
| 
 | |
| [ -10 -20 ] [ 10 20 -1 [ [ * ] curry 2apply ] compile-call ] unit-test
 | |
| 
 | |
| [ [ 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
 | |
| 
 | |
| [ [ 6 2 + ] ]
 | |
| [
 | |
|     2 5
 | |
|     [ >r [ + ] curry r> 0 < [ -2 ] [ 6 ] if swap curry ]
 | |
|     compile-call >quotation
 | |
| ] unit-test
 | |
| 
 | |
| [ 8 ]
 | |
| [
 | |
|     2 5
 | |
|     [ >r [ + ] curry r> 0 < [ -2 ] [ 6 ] if swap curry call ]
 | |
|     compile-call
 | |
| ] unit-test
 | |
| 
 | |
| : foobar ( quot -- )
 | |
|     dup slip swap [ foobar ] [ drop ] if ; inline
 | |
| 
 | |
| [ ] [ [ [ f ] foobar ] compile-call ] unit-test
 | |
| 
 | |
| [ { 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
 | |
| 
 | |
| : funky-assoc>map
 | |
|     [
 | |
|         [ call f ] curry assoc-find 3drop
 | |
|     ] { } make ; inline
 | |
| 
 | |
| [ t ] [
 | |
|     global [ [ drop , ] funky-assoc>map ] compile-call
 | |
|     global keys =
 | |
| ] unit-test
 | |
| 
 | |
| [ 3 ] [ 1 [ 2 ] [ curry [ 3 ] [ 4 ] if ] compile-call ] unit-test
 | |
| 
 | |
| [ 3 ] [ t [ 3 [ ] curry 4 [ ] curry if ] compile-call ] unit-test
 | |
| 
 | |
| [ 3 ] [ t [ 3 [ ] curry [ 4 ] if ] compile-call ] unit-test
 | |
| 
 | |
| [ 4 ] [ f [ 3 [ ] curry 4 [ ] curry if ] compile-call ] unit-test
 | |
| 
 | |
| [ 4 ] [ f [ [ 3 ] 4 [ ] curry if ] compile-call ] unit-test
 |