まず一つ目に Lisp ってインデントの仕方がかなり独特なところがあって適切にインデントするのが難しいっていうところがある。
次にこれは Emacs ユーザーがおかしいのかもしれないだけど、REPL はエディタの中で起動したがというのがある。
まあ後者はどうでもいいんだけど前者が問題。
まず一つ目に Lisp ってインデントの仕方がかなり独特なところがあって適切にインデントするのが難しいっていうところがある。
次にこれは Emacs ユーザーがおかしいのかもしれないだけど、REPL はエディタの中で起動したがというのがある。
まあ後者はどうでもいいんだけど前者が問題。
普通は2文字ずつ空白を入れてインデントするとかで足りるんだけど Lisp の場合はそうはいかない。
しかも、特殊形式(関数じゃないやつ)の名前によってインデントの仕方を変える必要があったりする。
さらに、 Common Lisp の場合は SLIME という統合開発環境で REPL 上の情報を読みとってインデントの仕方を決めたりしていて REPL と密結合していないと適切なインデントの仕方が分からなかったりする。
Common Lisp の話だけど、マクロを定義するときに、引数部分に &body と書くか &rest と書くかで適切なインデントの仕方が変わるのでその情報をどうやって取得すればいいんだっていう話がある。
これは Emacs + SLIME の環境では解決されている。
GNU social JP is a social network, courtesy of GNU social JP管理人. It runs on GNU social, version 2.0.2-dev, available under the GNU Affero General Public License.
All GNU social JP content and data are available under the Creative Commons Attribution 3.0 license.