タグ

関連タグで絞り込む (1)

タグの絞り込みを解除

common-lispに関するmadpieroのブックマーク (2)

  • Common Lisp マクロを書くときにおろそかにしてはいけないこと - cranebirdの日記

    他にも沢山ありそうですが、最初の方にひっかかったことを列挙。 シンボルが何なのか。変数名みたいなものと曖昧に思っているとつまづく。パッケージと関連していることを意識すること。 keyword がなぜ便利か、理解する。マクロを書いたパッケージと違うパッケージでマクロを展開してみる。 リスト処理をパズルと思っておろそかにしていると、よくない。プログラムを書くプログラム(つまりマクロ)は、結局リスト処理そのもの、ということを忘れない。 read関数とリードテーブル。 ラムダリスト。各種のパラメーター &key &rest を綺麗に使えば、リスト処理を簡潔にできる。 クォート。何が評価されて何が評価されないのか? 見た目。emacs のインデントはカスタマイズできるので、自作マクロのインデントが汚くても悩まない。 以下はむしろ強調されているのであまり引っ掛からなかった。 変数捕捉。ちゃんと gen

    Common Lisp マクロを書くときにおろそかにしてはいけないこと - cranebirdの日記
  • Common Lisp Loop マクロはミニ言語 - cranebirdの日記

    loop マクロは、知れば知るほど繰り返し処理のためのミニ言語だということが分かってくる。 最近覚えたのは、ループ内のローカル変数の使い方。 var x from n to m と書けば数列を生成するが、 to 以降は省略可能。ファイルを行単位で読みながら、行数を数えたりする時など、範囲が分からないときに便利。map系の高階関数に無名関数渡すより、見やすいかも。 誰か なんでも再帰 に対抗すべく? なんでもloop を書いてほしい。豊かな繰り返し処理に必要なのは優しい構文なんかじゃない、繰り返しを記述する能力を持った専用の「言語」だったんだよ! ちなみに仕様書をちゃんと読むとちゃんと書いてある、それこそが loop マクロのいいところ。

    Common Lisp Loop マクロはミニ言語 - cranebirdの日記
  • 1