Excellent Lisp プログラミング スタイル チュートリアル: 第 3 章 (翻訳)

元のリンク: https://norvig.com/luv-slides.ps

3. 標準に近いツールを使用する

一部の機能は言語に組み込まれていませんが、ほとんどのプログラマーによって使用されています。これは、言語の拡張機能とプログラムの開発に役立つツールに分かれています。

拡大する

  • defsystem はプログラムを定義するために使用されます
  • CLIM や CLX などのグラフィカル ライブラリ

道具

  • FSF の emacs、Lucid
    インデント、フォント/色のサポート
    定義/パラメータ リスト/ドキュメント/通常の検索< a i= 3> Lisp との対話
  • CMU からの外部参照、マニュアルなど
  • ベンダーのブラウザ、デバッガ、アナライザ

デフシステム

defsystem のパブリック ドメイン バージョンを選択してください (残念ながら、dpANS CL の標準はありません)。

  • 絶対パス名は 1 か所にのみ配置されます
  • defsystem を使用してすべてをロードします
  • コンパイルとロードを区別する
  • 選択的にバージョン管理を行う
(defpackage "PARSER" ...)

(defsystem parser
  (:source "/lab/indexing/parser/*")
  (:parts utilities "macros" "grammar" "tokenizer"
          "optimizer" "debugger" "toplevel"
          #+CLIM "clim-graphics" #+CLX "clx-graphics"))
  • システムがコンパイラ警告なしで読み込まれることを確認します
    (初回とその後数回)
    (使い方を学ぶ < a i=3>)(declare (ignore ...))
  • システムを最初からコンパイルできるようにします
    (長引く起動の問題を排除します)

エディターのコマンド

エディターは次のことができる必要があります。

  • S式で移動し、一致する親を表示します
  • コードを適切にインデントする
  • アンバランスなブラケットを探しています
  • フォントと色でコードを装飾する
  • 任意のシンボルの定義を検索する
  • 任意のシンボルのパラメータとドキュメントを検索します
  • マクロはあらゆる式を展開します
  • 現在の式、範囲、またはファイルを評価またはコンパイルのために Lisp に送信します
  • Lisp に送信されたコマンドの履歴を保存し、編集して再送信できるようにします。
  • キーボード、マウス、メニューの使用

Emacs はこれらすべてを行うことができます。エディタが動作しない場合は、修正されるまで文句を言うか、新しいエディタを入手してください。

Emacs: インデントとコメント

インデントしないでください。
代わりに、編集者にこれを行わせます。
ほぼ標準的な形式が開発されました。

  • 最大幅80列
  • コメント規則に従います
    ;インライン コメントの場合
    ;;関数内コメントの場合
    ;;;関数間コメントの場合< /span>
    ;;;;段落ヘッダー (アウトライン モードの場合)
  • cl-indentライブラリはインデントの方法を設定できます
    (put 'defvar 'common-lisp-indent-function '(4 2 2))
  • lemacs利用可能なフォントと色
(hilit::modes-list-update "Lisp"
  '((";;.*" nil hilit2) ...))

おすすめ

転載: blog.csdn.net/zssrxt/article/details/133667533