4和の方をターゲットにして、マクロの説明です。これは文字列、この文字列をマクロとして実行します。この文字列をいったんレジスタaに保存します。要素数と数字の1をスタックに積みます。"<[レジスタ名]"は値を二つpopして、比較が成立したらレジスタをマクロとして実行します。要約すれば、要素数が1より大きいときはレジスタaのマクロを実行する、です。(マクロを呼ぶ前に要素数チェックしたのはこのため。↑でもやった要素数チェック用の数字。要素数が1より大きければレジスタaを実行(つまりこいつ自身。dcには反復実行がないようなので再帰でがんばってミマシタ。"s","l"を使ってるので元からあるレジスタaの値を殺してますが、まぁキニシナイ。マクロの実行には、条件に一致したときだけ実行する"<","!<",">","!>","=","!="の6種類と、問答無用で実行する"x"があります。p]x"の様に直接実行できる一方、レジスタの内容を実行する時は"lax"などの様に"l"で読み込んでやる必要があります。"!="はそれぞれ"<",">","="の否定です。"<="とかはないので注意。これはマクロが呼び出され「る」!!runと逆順になることに注意してください。scriptでちゃちゃっと書いちゃった方が楽なんでしょうが、まぁ、興味あったらmanpageも覗いてみてください。