let map1_pr f (y: var b) (x: var a) = for i<(lendim #x) do sub(y,i) := f (sub(!x,i)) done ;; let map1_sh f_sh x_sh = succdim (lendim x_sh) (f_sh (preddim x_sh)) ;; let map1 f = proc2fun (map1_pr f) (map1_sh #f) ;; let col k = map1 (fun (x:exp [a]) -> sub(x,k) ) ;; (* tests let w = fill {2,3:int_shape} with [0,1,2,3,4,5] ;; let w1 = col 1 w;; *)