問題タブ [lisp]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
14 に答える
7330 参照

macros - LISP マクロはどこまで使える?

おそらくマクロを使用して、LISPがオンザフライで構文を再定義できることをたくさん読んだことがあります。私はこれが実際にどこまで行くのか興味がありますか?言語構造を再定義して、境界線が別の言語のコンパイラになることはありますか? たとえば、LISP の機能的な性質を、よりオブジェクト指向の構文とセマンティクスに変更できますか。たとえば、Ruby のようなものに近い構文を使用できますか?

特に、マクロを使って括弧地獄をなくすことはできますか?私は (Emacs-) LISP を十分に学んだので、Emacs を独自のマイクロ機能でカスタマイズすることができましたが、マクロを使って言語をどこまでカスタマイズできるのか非常に興味があります。

0 投票する
29 に答える
58413 参照

functional-programming - なぜLispを学ばなければならないのですか?

私は Lisp を学ぶべきだと強く感じていますし、Lispを学ぶのに役立つ優れたリソースがたくさんあります。

私は複雑な構文にうんざりしていませんが、「従来の商用プログラミング」のどこで、手続き型言語の代わりにそれを使用するのが理にかなっている場所を見つけるでしょうか。

Lisp で書かれた商用キラーアプリはありますか?

0 投票する
12 に答える
9374 参照

c - 継続を実装する方法は?

私はCで書かれたSchemeインタープリターに取り組んでいます。現在、Cランタイムスタックを独自のスタックとして使用していますが、継続の実装に小さな問題があります。私の現在の解決策は、Cスタックをヒープに手動でコピーし、必要に応じてコピーして戻すことです。標準 C ではないことを除けば、このソリューションは理想的とは言えません。

CでSchemeの継続を​​実装する最も簡単な方法は何ですか?

0 投票する
12 に答える
3948 参照

lisp - Emacs なしの Lisp/Scheme インタプリタ?

私はしばらく Lisp を独学したいと思っていました。しかし、私が聞いたインタプリタはすべて emacs のフレーバーを含んでいます。これをコマンドラインに入力できるようなコマンドラインインタープリターはありますか:

lisp解釈 sourcefile.lisp

perl や python を実行できるように。

私は Emacs にもっと慣れたいと思っていますが (Emacs を使っている人と一緒に仕事をするときにイライラしないのであれば)、むしろ Emacs の学習を Lisp の学習から切り離したいと思っています。

編集:私は実際にはSchemeを使用するSICPに従いたいので、Schemeに関する回答がより役立ちます。私はその違いにあまり慣れていません。

0 投票する
4 に答える
1747 参照

regex - emacsで正規表現をキーの組み合わせにバインドするにはどうすればよいですか?

文脈上、私はemacs初心者のようなものです。私はそれを長い間使用していませんでしたが、ますます使用しています(私はそれがとても好きです). また、私は Lisp には慣れていますが、elisp にはあまり詳しくありません。

この特定の正規表現を頻繁に使用するため、正規表現をキーボードの組み合わせにバインドする必要があります。

私がやってきたこと:

上記では改行を使用しましたが、正規表現の を の結果にisearch-forward-regexp置き換える必要があることがわかりました。これにより、(コマンドを終了せずに)リテラルの改行が挿入され、式に改行を挿入して行間で一致させることができます。\nC-q Q-j

これをキーの組み合わせにバインドするにはどうすればよいですか?

式で実行される elisp 関数を作成する必要があることは漠然と理解していますがisearch-forward-regexp、詳細についてはあいまいです。Google で検索したところ、ほとんどのドキュメントが少しわかりにくいことがわかりました。

emacsで正規表現をキーの組み合わせにバインドするにはどうすればよいですか?


マイク・ストーンはこれまでのところ最高の答えを持っていまし.

編集-この種の機能はありましたが、マクロを保存した後、後で使用するために戻ったときに、C-x e. (つまり、emacs を再起動して を入力してから を入力するM-x macro-nameと、ミニバッファーC-x eに「最後の kbd マクロがありません」などのメッセージが表示されます)


@Mike Stone - 情報をありがとう。私は次のようなマクロを作成しようとしました:

これでマクロが作成されましたが、マクロを実行すると、 を使用したときに通常得られるのと同じハイライトが得られませんでしたisearch-forward-regexp。代わりに、式の次の一致の最後にジャンプしました。だから、それは私が必要とするものには実際には機能しません。何か案は?

編集:マクロを使用してやりたいことを実行できるisearch-forward-regexpようです。あなたが提案したことを試してみます。

0 投票する
6 に答える
5137 参照

emacs - Lisp以外の言語でEmacs拡張機能を書く

既存のアプリケーション (OCaml で作成) を使用して、Emacs の「インターフェイス」を作成したいと考えています (たとえば、Emacs GDB モードなど)。大量の Lisp コードを書かずにこれを行うことを好みます。MVC の用語で言えば、View は Emacs である必要がありますが、Model と Controller は (主に) OCaml のままである必要があります。

Lisp 以外の言語で Emacs の拡張機能を書く方法を知っている人はいますか? これは、他の言語での Emacs 拡張 API へのバインディングの形をとるか (たとえば、OCaml をファーストクラスの Emacs 拡張言語にする)、またはたとえば、拡張が書き込み可能なパイプを持つ Emacs インタラクション モードのいずれかを取ることができます。 Emacs Lisp 式と結果値の読み取り。

0 投票する
15 に答える
6411 参照

functional-programming - 関数型プログラミングの良い最初のテキストは何ですか?

私は自分の快適ゾーンの外で言語を勉強するのが好きですが、関数型言語を始める場所を見つけるのに苦労しました。コンピュータプログラムの構造と解釈につ​​いて多くの良いことを聞いたが、数年前にそれを読み通そうとしたとき、それはちょうど私の頭をかき乱したようだった。私はウェブサイトよりも本の方がずっと上手ですが、地元の書店に行くと、LISPの本はちょっと怖いように見えます。

それで、良い出発点は何ですか?私の目標は、関数型プログラミング言語を使用して6か月ほどで単純な問題を解決できるようにすることと、より高度なトピックに移動し、関数型言語が仕事に適したツールであるかどうかを認識し、その言語を使用して2〜3年の間にさらに多くの問題を解決します。私は例が多いが、取り組むべき課題も含まれている本が好きです。関数型言語にはそのようなものは存在しますか?

0 投票する
6 に答える
23672 参照

build - Lisp実行可能ファイル

Lisp の学習を始めたばかりで、Lisp コードをコンパイルして実行可能ファイルにリンクする方法がわかりません。

私は2つのファイルを使用clispしてclisp -c生成しています:

  • .fas
  • .lib

実行可能ファイルを取得するには、次に何をすればよいですか?

0 投票する
4 に答える
516 参照

lisp - CL と Scheme を頭の中で整理する

気分に応じて、Lisp-1 と Lisp-2 の間を行ったり来たりするようです。残念ながら、明らかな名前空間の違いを超えて、これにより、あらゆる種類の面白い関数名/その他の問題が発生します。適切な例として、今夜私がやろうとしたコードを書き込もうとして (map #'function listvar)、もちろん、CL ではまったく動作しません。地図ではなく、地図車が欲しかったことを思い出すのに少し時間がかかりました。もちろん、slime/emacs がマップ IS が何かとして定義されていることを示している場合は役に立ちませんが、明らかに同じ機能はまったくありません。

では、どちらかを選択してそれに固執することを除いて、これを最小限に抑える方法についての指針はありますか?

0 投票する
6 に答える
8193 参照

functional-programming - Lispでのリスト操作

私はLispで次の機能をどこでも探していましたが、どこにも行きませんでした。

  1. リストから何かのインデックスを見つけます。例:

    /li>
  2. リスト内の特定の場所で何かを置き換えます。例:

    /li>
  3. 特定のインデックスでアイテムを返します。例:

    /li>

これまで、自分の機能で偽造してきました。自分のためにもっと作品を作っているだけなのかしら。

これが私がナンバー1を偽造してきた方法です。