sqrt =: ^ & 0.5 echo sqrt(2) 1.41421 echo sqrt(sqrt(2)) 1.18921 echo sqrt^:2(2) 1.18921 echo sqrt^:_1(2) 4 echo + / i. 11 55 echo (i. 11) + / i. 11 0 1 2 3 4 5 6 7 8 9 10 1 2 3 4 5 6 7 8 9 10 11 2 3 4 5 6 7 8 9 10 11 12 3 4 5 6 7 8 9 10 11 12 13 4 5 6 7 8 9 10 11 12 13 14 5 6 7 8 9 10 11 12 13 14 15 6 7 8 9 10 11 12 13 14 15 16 7 8 9 10 11 12 13 14 15 16 17 8 9 10 11 12 13 14 15 16 17 18 9 10 11 12 13 14 15 16 17 18 19 10 11 12 13 14 15 16 17 18 19 20 echo + / ~ i. 11 0 1 2 3 4 5 6 7 8 9 10 1 2 3 4 5 6 7 8 9 10 11 2 3 4 5 6 7 8 9 10 11 12 3 4 5 6 7 8 9 10 11 12 13 4 5 6 7 8 9 10 11 12 13 14 5 6 7 8 9 10 11 12 13 14 15 6 7 8 9 10 11 12 13 14 15 16 7 8 9 10 11 12 13 14 15 16 17 8 9 10 11 12 13 14 15 16 17 18 9 10 11 12 13 14 15 16 17 18 19 10 11 12 13 14 15 16 17 18 19 20 suc =: + & 1 double =: * & 2 echo (double @ suc) 5 12 echo (double @: suc) 5 12 to =: - ~ echo 10 to 16 6 transpose =: |: matprod =: + / . * A =: 2 2 $ 1 2 3 4 echo A 1 2 3 4 echo transpose A 1 3 2 4 echo A matprod A 7 10 15 22 B =: 2 2 2 $ 1 2 3 4 5 6 7 8 echo B 1 2 3 4 5 6 7 8 echo B matprod A 7 10 15 22 23 34 31 46 t =: 10 # 1 20 $ 20 # '.' echo ('X' 5 } 3 { t) 3 } t .................... .................... .................... .....X.............. .................... .................... .................... .................... .................... .................... [ a234 =: i. 2 3 4 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 [ a45 =: i. 4 5 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 [ a56 =: i. 5 6 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 a2345 =: i. 2 3 4 5 $ a2345 2 3 4 5 $ |: a2345 NB. transpose 5 4 3 2 $ 1 0 2 3 |: a2345 3 2 4 5 $ a234 */ a56 NB. external product 2 3 4 5 6 $ a234 +/ .* a45 NB. tensorial product 2 3 5 [ a66 =: i. 6 6 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 [ i6 =: = / ~ i. # a66 NB. identity 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 NB. Identity matrix = i. 5 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 (= & i.) 5 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 [ d6 =: a66 * i6 NB. diagonal matrix 0 0 0 0 0 0 0 7 0 0 0 0 0 0 14 0 0 0 0 0 0 21 0 0 0 0 0 0 28 0 0 0 0 0 0 35 NB. o6 =: (# a66) # 1 NB. vector of ones NB. o6 NB. v6 =: d6 +/ .* o6 NB. diagonal vector [ v6 =: +/ d6 NB. diagonal vector 0 7 14 21 28 35 +/ v6 NB. trace 105 +/ +/ d6 105 , i6 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 , a66 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 (, i6) +/ . * , a66 NB. Another way of computing trace 105 [ a55 =: i. 5 5 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 [ i55 =: = / ~ i. # a55 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 [ i355 =: (3 # 1) */ i55 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 [ a355 =: i. 3 5 5 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 [ d355 =: i355 * a355 0 0 0 0 0 0 6 0 0 0 0 0 12 0 0 0 0 0 18 0 0 0 0 0 24 25 0 0 0 0 0 31 0 0 0 0 0 37 0 0 0 0 0 43 0 0 0 0 0 49 50 0 0 0 0 0 56 0 0 0 0 0 62 0 0 0 0 0 68 0 0 0 0 0 74 [ d553 =: |: d355 0 25 50 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 6 31 56 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 37 62 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 18 43 68 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 24 49 74 [ t =: +/ +/ d553 60 185 310 a553 =: |: a355 i553 =: i55 */ 3 # 1 d553b =: i553 * a553 [ tb =: +/ +/ d553b 60 185 310 (,. a355) +/ . * , i55 60 185 310 a3455 =: i. 3 4 5 5 (3 4 25 $ , a3455) +/ . * , i55 60 185 310 435 560 685 810 935 1060 1185 1310 1435 a5534 =: i. 5 5 3 4 (, i55) +/ . * 25 3 4 $ , a5534 720 725 730 735 740 745 750 755 760 765 770 775 (((0 & {) * 1 & {) , 2 & }.) 3 4 5 6 7 12 5 6 7 trace =: 3 : 0 shape =. (((0 & {) * 1 & {) , 2 & }.) $ y i =. =/ ~ i. # y (, i) +/ . * shape $ , y ) trace =: 3 : 0 (, =/ ~ i. # y) +/ . * ((((0 & {) * 1 & {) , 2 & }.) $ y) $ , y ) (, & (=/~) & i. & #) a5534 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 trace =: (, & (=/~) & i. & #) +/ . * (((((0 & {) * 1 & {), 2 & }.) & $) $ ,) trace a5534 720 725 730 735 740 745 750 755 760 765 770 775 5 -~ 8 NB. swap operands 3 a =: 'b' (a) =: 123 b 123 i. 10 0 1 2 3 4 5 6 7 8 9 +/ i. 10 NB. sum of array 45 +/ \ i. 10 NB. cumul 0 1 3 6 10 15 21 28 36 45 +/ 10 20 30 40 NB. sum 100 # 10 20 30 40 NB. number 4 (+/ % #) 10 20 30 40 NB. average is sum divided by number 25 avg =: +/ % # avg 10 20 30 40 25 a45 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 +/ a45 NB. sum of rows or sum of elements of each column 30 34 38 42 46 +/"1 a45 NB. sum of columns or sum of elements of each row 10 35 60 85 a234 NB. three dimensional array with 2 sheets, 3 rows and 4 colums 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 +/ a234 NB. sum of sheets 12 14 16 18 20 22 24 26 28 30 32 34 +/"3 a234 NB. sum of sheets 12 14 16 18 20 22 24 26 28 30 32 34 +/"2 a234 NB. sum of rows 12 15 18 21 48 51 54 57 +/"1 a234 NB. sum of columns 6 22 38 54 70 86 ([: i. */) 3 4 5 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 1 2 3 ; 4 5 ; 6 7 8 ┌─────┬───┬─────┐ │1 2 3│4 5│6 7 8│ └─────┴───┴─────┘ 1 { 1 2 3 ; 4 5 ; 6 7 8 ┌───┐ │4 5│ └───┘ (* & 10) &> < 1 2 3 10 20 30 (* & 10) &.> < 1 2 3 ┌────────┐ │10 20 30│ └────────┘ (* & 2) 10 NB. double 20 ((* & 2) ^: 8) 10 NB. function power 2560 abs =: + ` - @. (< & 0) NB. absolute value abs 5 5 abs _6 6 NB. Shadow Hunter attack 1 + i. 6 NB. die with 6 sides 1 2 3 4 5 6 1 + i. 4 NB. die with 4 sides 1 2 3 4 | (1 + i. 6) -/ (1 + i. 4) NB. difference 0 1 2 3 1 0 1 2 2 1 0 1 3 2 1 0 4 3 2 1 5 4 3 2 +/ +/ (| (1 + i. 6) -/ (1 + i. 4)) =/ i. 6 NB. number of occurences of each difference 4 7 6 4 2 1 NB. Database department =: < 1 ; 'Administration' department =: department , < 2 ; 'Marketing' department =: department , < 3 ; 'Purshasing' department =: >department department ┌─┬──────────────┐ │1│Administration│ ├─┼──────────────┤ │2│Marketing │ ├─┼──────────────┤ │3│Purshasing │ └─┴──────────────┘ employee =: < 1 ; 1 ; 'Andrew' employee =: employee , < 2 ; 1 ; 'Betty' employee =: employee , < 3 ; 2 ; 'Cindy' employee =: employee , < 4 ; 2 ; 'Daniel' employee =: employee , < 5 ; 3 ; 'Evelyne' employee =: employee , < 6 ; 3 ; 'Fred' employee =: employee , < 7 ; 3 ; 'Gaby' employee =: >employee employee ┌─┬─┬───────┐ │1│1│Andrew │ ├─┼─┼───────┤ │2│1│Betty │ ├─┼─┼───────┤ │3│2│Cindy │ ├─┼─┼───────┤ │4│2│Daniel │ ├─┼─┼───────┤ │5│3│Evelyne│ ├─┼─┼───────┤ │6│3│Fred │ ├─┼─┼───────┤ │7│3│Gaby │ └─┴─┴───────┘ join =: 4 : 0 r =. i. 0 for_a. x do. for_b. y do. r =. r , r ) de =: department join employee de =: ((0{|:de)=3{|:de)#de de ┌─┬──────────────┬─┬─┬───────┐ │1│Administration│1│1│Andrew │ ├─┼──────────────┼─┼─┼───────┤ │1│Administration│2│1│Betty │ ├─┼──────────────┼─┼─┼───────┤ │2│Marketing │3│2│Cindy │ ├─┼──────────────┼─┼─┼───────┤ │2│Marketing │4│2│Daniel │ ├─┼──────────────┼─┼─┼───────┤ │3│Purshasing │5│3│Evelyne│ ├─┼──────────────┼─┼─┼───────┤ │3│Purshasing │6│3│Fred │ ├─┼──────────────┼─┼─┼───────┤ │3│Purshasing │7│3│Gaby │ └─┴──────────────┴─┴─┴───────┘