質問

一般的な関数型プログラミングをより快適にするために、LISPに戻ることにしました(AIクラス以来使用していません)ので、Lisp In A Box(実際に前のクラスで使用した)をダウンロードしましたCLISPとEmacsに付属しています。

実行すると、次のように表示されます。

  

ポート1617で接続されています。兄弟、このREPLを使用してください。

何?それで、私はLisp In A Boxウェブページをより詳しく見て、これを見つけました:

  

SLIMEはEmacsの統合開発環境であり、ネットワークソケットを介してCommon Lisp実装とインターフェースします。 SLIMEに関する多くの情報は、CLikiのSLIMEノードにあります。 SLIMEのマニュアルは、オンラインでPDF形式で入手できます。

SLIMEとは多少理解できます(emacsの何らかの拡張機能ですよね?)しかし、なぜ世界でテキストエディターが独自のサーバーを起動して接続するのですか?

役に立ちましたか?

解決

ソケットはパイプよりも柔軟性があります。たとえば、SLIMEを使用すると、ネットワーク上のSwankサーバーに接続できます。これは、長時間実行されるプロセス(Webサーバーなど)を備えたリモートマシンでライブ修正を行う場合に非常に便利です。これを考慮して、パイプとソケットの両方をサポートするような方法で通信を抽象化することにより、複雑さの別のレイヤーを追加するのはなぜですか?とにかく、パイプはソケットよりもプログラムが簡単ではないようです。

他のヒント

目的は、Lispが並行して実行されるようにすることです。

Slimeはセッションに接続し、多くの異なるウィンドウ(またはマシンでさえ)から同じ環境、定義などを持つことができます。これは、たとえば、アプリケーションを起動して、その場でデバッグできることを意味します。

詳細については、このブログをご覧ください。

まあ、Slimeは統合開発環境を提供するためにLispプロセスを開始します。そのため、コードをオンザフライでテストおよびデバッグし、オブジェクトを検査することもできます。 ソケットのあるアーキテクチャは、異なるlisps間の移植性を高めるために選択されたと思います(ところで、Slimeは Clojure および MIT Scheme )およびOS-es(SlimeはWindowsでも動作します)。また、クロスプラットフォーム開発が可能になります-Emacsからターゲットアーキテクチャでソフトウェアをテストできます。

だから、この決定は素晴らしいと思うので、本番サーバーにswank(Slimeバックエンド)を置いてはいけません。

REPL(read-evaluate-print-loop)が並行して実行されるため、エディターからコードスニペットをオンザフライでコンパイルおよびテストできます。 " Practical Common Lisp" (ウェブ上で無料で入手可能)これについての良い説明があり、Lispを学ぶための非常に良い本です。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top