@Box: {[value] dilambda[ { value }, {[new] value = new } ] } @Array2d: {[w, h] @data: array#new[w * h, 0] dilambda[ {[x, y] data[x + (y * w)] }, {[x, y, new] data[x + (y * w)] = new } ] } @print: {[x] printf["x -> %a\n", x] } @x = Box[-7] x[] *= 2 print[x[]] x[] = 'abcdef print[x[]] @m: Array2d[10, 10] FOR [@x: 0][< 10][+ 1] FOR [@y: 0][< 10][+ 1] m[x, y] = x ^ y printf["%a == %a\n", m[3,7], 3^7] @add: {[*] @acc = 0 FOR [@i: 0][< SEL$][+ 1] acc += SEL[i] acc } printf["4+1+3: %a\n", add[4,1,3]] @gather: {[*] SEL[*] } printf["test %a\n", gather[-1, (), 'x]] @map: {[f, xs] @ys: array#new[xs.len] FOR [@i: 0][< xs.len][+ 1] ys[i] = f[xs[i]] ys } printf["maps %a\n", map["abcd", #[1,2,0]]] @inspect: {[m] printf["%a\n", m] } @r: #{"a" 1, "b" 2, 0 "a"} r[0]=r printf["r: "] inspect[r] printf["r.a -> %a\n", r[0].a] { inspect [#{0 3,"a" 3}] }[]