コードから見る AWK˜plus
お題は、ローカル変数です
- 本家AWK には、無い var / val で変数を定義しています。
これは、その変数スコープのローカル変数定義です。root で定義した場合は、グローバル(クラス)変数になります。
- AWK では、コマンドラインパラメータに -v var=val を指定するとスクリプト実行前に代入されます。
しかしスクリプトで var に代入するとそれが有効になってしまいます。(変数の初期値は定義できない)
ちなみに、(-v 無し) var=val 指定は、次のファイルを読み込む前に解釈します。
- AWK˜plus では、グローバル変数の初期化 → コマンドラインパラメータの解釈 → スクリプト実行となっており上記の問題は発生しません。 ちなみに、AWK˜plus
は、ネストした関数(クロージャー)をサポートしているため変数もネストします。
AWK のローカル変数
関数の仮引数の後ろの変数がローカル変数です。(コーディング規約として空白を何個か挿入します)
何故こんなマニアックな仕様かというと、AWK は、C の次に開発され C にもこの仕様は残っています。
プログラムコンテストで C でショートプログラム課題を解く場合には必須技です。
しかし、う~さんの得意技は、アルゴリズムのためこれは苦手です。
ちょっと一息
オリジナル画面は、MATRIXスタッフの中に日本人がいて「日本では、エディタが縦にスクロールする」と言ったのが始まりだそうです。
MATRIX スクリーンセーバー (セミナー「アラーム」バージョン)

Android で動かしたい
MATRIX HTMLスクリーンセーバー (Firefoxバージョン)
MATRIX HTMLスクリーンセーバー
(Chrome, Edgeバージョン)
終わりに、AWK のおすすめ本
オープンソース
インストール
- Java をダウンロード(環境を汚さない .zip 版を推奨、複数の Javaもインストールできます)「Java Downloads」
- AWK~plus をダウンロード「AWK~plus for Java 」
(コマンドを添付しています)
- AWK~plus フォルダ中の makefile の JAVAHOME 変数に Javaホームパスを設定します。
実行
ターミナルを開き、AWK~plus フォルダをカレントディレクトリにして、と入力します。