61 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Factor
		
	
	
		
			Executable File
		
	
			
		
		
	
	
			61 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Factor
		
	
	
		
			Executable File
		
	
 | 
						|
! USING: kernel quotations namespaces sequences assocs.lib ;
 | 
						|
 | 
						|
USING: kernel namespaces namespaces.private quotations sequences
 | 
						|
       assocs.lib math.parser math sequences.lib locals ;
 | 
						|
 | 
						|
IN: namespaces.lib
 | 
						|
 | 
						|
! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 | 
						|
 | 
						|
: save-namestack ( quot -- ) namestack >r call r> set-namestack ;
 | 
						|
 | 
						|
! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 | 
						|
 | 
						|
: make* ( seq -- seq ) [ dup quotation? [ call ] [ ] if ] map ;
 | 
						|
 | 
						|
! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 | 
						|
 | 
						|
: set* ( val var -- ) namestack* set-assoc-stack ;
 | 
						|
 | 
						|
SYMBOL: building-seq 
 | 
						|
: get-building-seq ( n -- seq )
 | 
						|
    building-seq get nth ;
 | 
						|
 | 
						|
: n, get-building-seq push ;
 | 
						|
: n% get-building-seq push-all ;
 | 
						|
: n# >r number>string r> n% ;
 | 
						|
 | 
						|
: 0, 0 n, ;
 | 
						|
: 0% 0 n% ;
 | 
						|
: 0# 0 n# ;
 | 
						|
: 1, 1 n, ;
 | 
						|
: 1% 1 n% ;
 | 
						|
: 1# 1 n# ;
 | 
						|
: 2, 2 n, ;
 | 
						|
: 2% 2 n% ;
 | 
						|
: 2# 2 n# ;
 | 
						|
: 3, 3 n, ;
 | 
						|
: 3% 3 n% ;
 | 
						|
: 3# 3 n# ;
 | 
						|
: 4, 4 n, ;
 | 
						|
: 4% 4 n% ;
 | 
						|
: 4# 4 n# ;
 | 
						|
 | 
						|
MACRO:: nmake ( quot exemplars -- )
 | 
						|
    [let | n [ exemplars length ] |
 | 
						|
        [
 | 
						|
            [
 | 
						|
                exemplars
 | 
						|
                [ 0 swap new-resizable ] map
 | 
						|
                building-seq set
 | 
						|
 | 
						|
                quot call
 | 
						|
 | 
						|
                building-seq get
 | 
						|
                exemplars [ like ] 2map
 | 
						|
                n firstn
 | 
						|
            ] with-scope
 | 
						|
        ]
 | 
						|
    ] ;
 |