影の薄い%syscallの話

例えば以下のようにマクロ変数が3つあったとします。

%let a = 3;
%let b = 1;
%let c = 2;

あんまりやらない処理ですが、a,b,cの中身の値を昇順ソートして
a=1,b=2,c=3と再代入したいとします。

実は1行で書けますが、ぱっとコードが思いつきますか?

知ってるか知らないかですが、以下のように書けます

%syscall sortn(a,b,c)

で終わりです。
確認してみると

%put &=a  &=b  &=c;





というわけ。
%sysfuncはよく知られてるけど、それのコールルーチン版の%syscallはあんまり知られてない。

まあ、確かに使わざるをえない機会はそれほど多くない気がする。



0 件のコメント:

コメントを投稿