Common Lisp Loop マクロはミニ言語

loop マクロは、知れば知るほど繰り返し処理のためのミニ言語だということが分かってくる。

最近覚えたのは、ループ内のローカル変数の使い方。
var x from n to m と書けば数列を生成するが、 to 以降は省略可能。ファイルを行単位で読みながら、行数を数えたりする時など、範囲が分からないときに便利。map系の高階関数に無名関数渡すより、見やすいかも。

誰か なんでも再帰 に対抗すべく? なんでもloop を書いてほしい。豊かな繰り返し処理に必要なのは優しい構文なんかじゃない、繰り返しを記述する能力を持った専用の「言語」だったんだよ!

ちなみに仕様書をちゃんと読むとちゃんと書いてある、それこそが loop マクロのいいところ。