| 
					
				 | 
			
			
				@@ -12,6 +12,9 @@ nil udf                   / special, nil and undefined 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 'a'%2                     / = nan, nan used to denote illegal numeric operation 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 +1 2 3                    / = udf, attempt to transpose flat vector, udf/undefined used to denote illegal operation 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 5 5.5 -5 42               / number (double-precision floats) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+1`000 1`000`000           / 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+.5 .429                   / 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+0xff 0o4 0b0101           / 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 nan inf                   / 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 'a' 'b' 'g'               / chars (bytes) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 4t.0                      / 0 NUL byte 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -49,6 +52,7 @@ f 5                       / = -5 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 :  monadic const         create a function that always yields x 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 :  dyadic  bind          bind y to symbol x 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+:: monadic unbind        unbind symbol x 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 :: dyadic  obverse       insert inverse for x 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 +  monadic flip          transpose matrix 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 +  dyadic  plus          add numbers 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -105,7 +109,8 @@ f 5                       / = -5 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 >: dyadic  nudgeright    shift elts of y to the right filling gap with x 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 ,  monadic enlist        put x into 1-elt array 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 ,  dyadic  join          concat x and y 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-,. monadic enfile        ame as , enlist but with infinite rank, ,.1 2 3 is (,1),:(,2),:(,3) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+,. monadic enfile        same as , enlist but with infinite rank, ,.1 2 3 is (,1),:(,2),:(,3) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+,. dyadic  enpair        put x and y into 2-elt array 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 #  monadic count         yield count of elts of x 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 #  dyadic  take          take x first elts of y (or last if x < 0) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 #. monadic where         #.0 0 1 0 1 0 is 2 4 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -131,7 +136,8 @@ _: dyadic  base          10_:4242 is 4 2 4 2 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 @  monadic abs           |x| 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 @  dyadic  at            pick elts from x by indices from y 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 @. monadic shuffle       shuffle elts of x 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-@. dyadicn member        check whether x is in y 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+@. dyadic  member        check whether x is in y 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+@: dyadic  indexof       yield index of x in y or #y if x not in y 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 {  monadic head          first two elts of x, same as 2# 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 {  dyadic  bin           bin search, e.g. 1 3 5 7 9{8 9 0 yields 3 4 -1 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 {. monadic tail          last elt of x 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -179,42 +185,44 @@ i. monadic import        load and eval source file 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 y. monadic system        exec system command (yields output) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 y. dyadic  system2       exec system command with input 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 E. monadic exit          exit with exit code 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+L. dyadic  tackleft      prepend x to y 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+R. dyadic  tackright     append x to y 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-f"       each          >"1 2 3 yields 2 3 4 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-xf"      merge         1 2 3,"a b c yields (1,.a),:(2,.b),:(3,.c) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-f".      eachprior     -".1 2 2 3 5 6 yields 1 0 1 2 1 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-xf".     eachpriorwith 0-".1 2 2 3 5 6 yields 1 1 0 1 2 1 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-f/       fold          +/1 2 3 yields 6 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-xf/      foldwith      1+/1 2 3 yields 7 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-f\       scan          +\1 2 3 yields 1 3 6 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-xf\      scanwith      1+\1 2 3 yields 1 2 4 7 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-f/.      converge      1;_/.1 2 3 yields () 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-f\.      converges     1;_\.1 2 3 yields 1 2 3,:2 3,:(,3),:() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-xf/.     eachright     1-/.1 2 3 yields 0 1 2 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-xf\.     eachleft      1-\.1 2 3 yields 0 -1 -2 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-f":      rank          #":1 2 3$1 yields 3 3, #":inf 2 3$1 yields 1 1 1,:1 1 1 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-xf":     rank          1 2 3 *:":1 1 2 3 yields (,1),:2 2,:3 3 3 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-n`       amend         'gw'0 3`'cross' yields 'grows' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-f&.      filter        >;0&.-2!.2 yields 1 2, basically shortcut for ]#.f 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-f/:      span          =;' '/:'x y z' yields (,'x'),:(,'y'),:(,'z') 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-xf/:     stencil       3+//:!10 yields 3 6 9 12 15 18 21 24, shortcut for f"x|: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-f;.      reflex        *;.5 yields 25, 5%;.2 yields 0.4 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+f"         each          >"1 2 3 yields 2 3 4 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+xf"        merge         1 2 3,"a b c yields (1,.a),:(2,.b),:(3,.c) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+f".        eachprior     -".1 2 2 3 5 6 yields 1 0 1 2 1 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+xf".       eachpriorwith 0-".1 2 2 3 5 6 yields 1 1 0 1 2 1 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+f/         fold          +/1 2 3 yields 6 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+xf/        foldwith      1+/1 2 3 yields 7 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+f\         scan          +\1 2 3 yields 1 3 6 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+xf\        scanwith      1+\1 2 3 yields 1 2 4 7 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+f/.        converge      1;_/.1 2 3 yields () 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+f\.        converges     1;_\.1 2 3 yields 1 2 3,:2 3,:(,3),:() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+xf/.       eachright     1-/.1 2 3 yields 0 1 2 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+xf\.       eachleft      1-\.1 2 3 yields 0 -1 -2 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+f":        rank          #":1 2 3$1 yields 3 3, #":inf 2 3$1 yields 1 1 1,:1 1 1 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+xf":       rank2         1 2 3 *:":1 1 2 3 yields (,1),:2 2,:3 3 3 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+n`         amend         'gw'0 3`'cross' yields 'grows' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+f&.        filter        >;0&.-2!.2 yields 1 2, basically shortcut for ]#.f 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+f/:        span          =;' '/:'x y z' yields (,'x'),:(,'y'),:(,'z') 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+xf/:       stencil       3+//:!10 yields 3 6 9 12 15 18 21 24, shortcut for f"x|: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+f;.        reflex        *;.5 yields 25, 5%;.2 yields 0.4 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-f;g      bond      */;!.5 yields 120, +;1 5 yields 6, 5;- 1 yields 4 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-f?.x     pick      >;5?.((2*),:<)"3 6 yields 6 5 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-f?:F     while     <;5?:>0 yields 5 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-n?:f     repeat    5?:*;2 1 yields 32 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-f&:F     if        1+&:+2 yields 2 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-f;:F     monaddyad -;:+5 yields -5, 1-;:+5 yields 6 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+f;g        bond          */;!.5 yields 120, +;1 5 yields 6, 5;- 1 yields 4 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+f?.x       pick          >;5?.((2*),:<)"3 6 yields 6 5 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+f?:F       while         <;5?:>0 yields 5 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+n?:f       repeat        5?:*;2 1 yields 32 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+f&:F       if            1+&:+2 yields 2 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+f;:F       monaddyad     -;:+5 yields -5, 1-;:+5 yields 6 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 inverse of a function f is a function ~f that undoes the effect of f 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 f::~f  obverse  define inverse ~f for f 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-f-:x   inverse  ~fx 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-xf-:y  inverse  (~fx)~f~fx 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-f^:Fx  under    ~FfFx 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-xf^:Fx under    ~F(Fx)f(Fx) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+f-:x       inverse       ~fx 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+xf-:y      inverse2      (~fx)~f~fx 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+f^:Fx      under         ~FfFx 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+xf^:Fx     under2        ~F(Fx)f(Fx) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 ``` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 # Prebuilt binaries 
			 |