動詞や名詞と同様副詞も定義できます。
a=:1 2 3 4 5 prefix=: \ < prefix 'abcdefg' +-+--+---+----+-----+------+-------+ |a|ab|abc|abcd|abcde|abcdef|abcdefg| +-+--+---+----+-----+------+-------+ +/ prefix a 1 3 6 10 15
さらに副詞の定義は/(スラッシュ)や\(バックスラッシュ、円マーク)のような副詞だけからではなく、接続詞と接続詞の引数を含んだ形で定義できます。
IP=: /\ NB. Insert Prefix + IP a 1 3 6 10 15 with3=: &3 % with3 a 0.333333 0.666667 1 1.33333 1.66667 ^ with3 a 1 8 27 64 125 I=: ^: _1 NB. Inverse adverb *: I a 1 1.41421 1.73205 2 2.23607 + IP I 1 3 6 10 15 1 2 3 4 5 ten=: 10& ^. ten 5 10 20 100 0.69897 1 1.30103 2 #. ten 3 6 5 365 from=: -~ into=: %~ 10 into 17 18 19 1.7 1.8 1.9 10 from 17 18 19 7 8 9 i=: "_1 NB. Apply to items {. i i. 3 4 0 4 8
演習:
15.1 副詞pow=: ^&とlog=: &^.を定義し、実行し、説明せよ。
pow=:^&2 NB.powを二乗と定義する pow 81 NB.81の二乗は6561 6561 log=: 10&^. NB.logを10を底とするログと定義する log 100 NB.100のlogは2 2 log pow 100 NB.100の二乗は10000、そのログは4。 4
15.2 以下の表現の意味を述べ、実行して確認せよ。
+/~ i=: i. 6 NB.足し算テーブル ft=: /~ NB.関数テーブル副詞 + ft i NB.足し算テーブル ! ft i NB.二項係数 inv=: ^:_1 NB.逆関数副詞 sub3=: 3&+ inv NB.3をマイナスする関数 sub3 i
+/~ i=: i. 6 NB.足し算テーブル 0 1 2 3 4 5 1 2 3 4 5 6 2 3 4 5 6 7 3 4 5 6 7 8 4 5 6 7 8 9 5 6 7 8 9 10 ft=: /~ NB.関数テーブル副詞 + ft i NB.足し算テーブル 0 1 2 3 4 5 1 2 3 4 5 6 2 3 4 5 6 7 3 4 5 6 7 8 4 5 6 7 8 9 5 6 7 8 9 10 ! ft i NB.二項係数 1 1 1 1 1 1 0 1 2 3 4 5 0 0 1 3 6 10 0 0 0 1 4 10 0 0 0 0 1 5 0 0 0 0 0 1 inv=: ^:_1 NB.逆関数副詞 sub3=: 3&+ inv NB.3をマイナスする関数 sub3 i _3 _2 _1 0 1 2