参考
Land of Lisp (書籍) : 日本語訳10章にある Loopマクロ周期表が役に立つ
使用方法については次を参照。
- Lisp入門サイト(そのうちまとめる)
- Hyperspec
- 逆引きCommonLisp の 制御構造のページ
一覧
どれぐらい役割や使い方が簡単に理解できた かの順に並べている
- dotimes, dolist
- map系関数 : mapcar, mapc, etc…
- xx-if, xx-if-not 系関数 : remove-if-not, substitute-if
- loop (永久ループ)
- do
- loop (複雑なマクロ)
- tagbody と go を用いたループ
これは、、、なかった
- foreach, each : dolist, loop
- for : 上記のうちからデータ構造に合ったものを選ぶ
- foreach-range : OnLisp にある mapa-b など参照
- while : do, loop で実装, 有志のマクロなども参照
補足
- 少なくとも上を覚えておくと、ProjectEuler, HackerRank etc… などの回答系サイトでは困らない
- 同じことを繰り返した結果、面倒になって、OnLispに載っていたマクロを使いだすこと請け合い
- GoogleによるCL Coding Standard で半推奨的な位置にあるためか、loopマクロをよく見かける。
- REPLのエラー表示でマクロ展開形にtagbodyが出てくることがある。マクロは自由である。
- 実際のコードを見てどれが繰り返し処理かを見抜くことは,,,私には少なくとも難しい。
- APIやデータ構造の把握が先に必要。
- 書き漏れがあったらまた記事更新する
- もっと伝わる書き方がわかったら記事更新する
書籍のご案内
Written with StackEdit.