魔術師をめざして

魔術師を目指して、相場・数学・プログラム言語を研究しています。

awk

オークと読む。
魔術師は、オークの処理系の一つである、
gawk cnu awk 4.0.4を使っている。
とても便利で強力なツールなので、同場で、
pログらミングに取り組まない皆さんにも、お勧めしたい。
PLのほとんどは、インデックスが0スタートだが、
LuaとJuliaは、1スタートだった。それに、オークも加わったようだ。
今読んでいる本には、どこにも、そう明言した文言がないが、
そうに違いないと思う。生きて来て出会った1開始言語は、
これで、4つになった。あと一つは、Fortranだ。
FortranもJuliaも、数値計算が得意な言語だ。
awkは、Perlがあるので、切り捨てる理由を
探していたとも言えるんだが、気づいたら、
オークが、面白くなってしまっているんだ。
あら、あら。
ついでに、オークのトピックスを一つ、

function fact( n, a) {
a = 1;
while ( n-- > 0 ) {
a *= n;
}
return a;
}

引数aは、ローカル変数として使う設定。
実引数は、nだけ指定すればいい。,後のスペース2つは、
慣習だ。(n. a,b,c)とすれば、a,b,cの3つが、ローカル変数だ。

factの使い方:
fact(5) #==> 120

aは、関数内部で使える変数となり、外部への影響の心配はない。
これは、オーク独特の機能だ。
おーくには、ローカル変数がなく、唯一、こうやって使うようだ。

ps:

なお、オークでは、以下の通り、再帰定義も可能。

function fact( n ) {
if ( n == 0 ) return 1;
return n * fact( n-1);
}