問題タブ [common-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.
return-value - Common Lisp関数は3つの値を返しますか?
Common Lisp (組み込み) 関数は 2 つ以上の値を返しますか? 2 を返すものはたくさん知っていますが、3 を返すものは思いつきません。
(ここで 2 つ以上の値を返すことについてのコメントを見て、CL がこれを行ったができないケースを考えてみました。)
common-lisp - defstruct で他のスロットを参照できますか?
一般的な Lisp では、次のように書けることに気付きました。
そして、私が呼び出すと(foo)
、6
が印刷されます。したがって、引数はおよびc
に設定された値を参照できます。しかし、 で同様のことを行う方法が見つからないようです。何かのようなもの:a
b
defstruct
これを行う方法はありますか?
lisp - LISP 変数交換
3 番目の変数を使用せずに LISP で 2 つの変数を交換するにはどうすればよいですか?
lisp - SuttonとBartonの「強化学習」Lispコードを実行するにはどうすればよいですか?
最近、強化学習についてよく読んでいますが、「強化学習:はじめに」が優れたガイドであることがわかりました。著者は、多くの実例のソースコードを提供してくれます。
質問を始める前に、Lispに関する私の実践的な知識は最小限であることを指摘する必要があります。私は基本的な概念とそれがどのように機能するかを知っていますが、私は実際に意味のある方法でlispを使用したことがないので、信じられないほどn00bっぽいことをしている可能性があります。:)
また、作者は自分のページで自分のコードに関する質問には答えないと述べているので、私は彼に連絡しませんでした。StackOverflowの方がはるかに良い選択だと考えました。
GNUのCLISPとSBCLの両方を使用してLinuxマシンでコードを実行しようとしましたが、実行できませんでした。どちらかのインタプリタを使用して、エラーの全リストを取得し続けます。特に、ほとんどのコードは、行を含むファイル'utilities.lisp'に含まれる多くのユーティリティを使用しているように見えます
:cclは、ある種のMacベースのバージョンのlispを参照しているようですが、これを確認できませんでした。他のコードパッケージである可能性があります。
この特定の部分を削除してみました(行をに変更します
しかし、それだけでさらに多くのエラーが発生しました。
誰かが私がこのコードを実行する方法を知っていますか?私はLispのすべてを完全に知らないのですか?
更新[2009年3月]: Clozureをインストールしましたが、それでもコードを実行できませんでした。
CCLコマンドプロンプトで、コマンド
次のエラー出力が発生します。
残念ながら、私はまだlispについて学んでいるので、何かが完全に定義されていないように感じますが、これらのエラーメッセージの読み方を本当に理解していません。
syntax - Common Lispのeq、eql、equal、equalpの違いは何ですか?
Common Lispのeq
、eql
、equal
およびの違いは何ですか? equalp
それらのいくつかはタイプをチェックし、いくつかはタイプ全体をチェックすることを理解していますが、どれがどれですか? 他のものよりも使いやすいのはいつですか?
lisp - gensym を使用した次の Common Lisp マクロの何が問題になっていますか?
Common Lisp の学習 (GNU CLISP 2.43 を使用) .. 初心者の間違いかもしれません。例は「xとyの間の素数を印刷する」です
do-primes-v2 は完璧に動作します。
次に、gensym を使用して、マクロ展開での名前の衝突を回避しようとしました - do-primes-v3。しかし、私は立ち往生しています
間違いを見つけることができるかどうかを確認するためにマクロ展開を使用しようとしましたが、できません。
lisp - Common Lisp における LET と LET*
LET と LET* (並列バインディングと順次バインディング) の違いを理解しており、理論的な問題としては完全に理にかなっています。しかし、実際に LET が必要になったことはありますか? 私が最近見たすべての Lisp コードでは、すべての LET を変更せずに LET* に置き換えることができました。
編集: OK、私はなぜ誰かが LET* をおそらくマクロとして発明したのか理解しています。私の質問は、LET* が存在することを考えると、LET が存続する理由はあるのでしょうか? LET* が普通の LET と同様に機能しない実際の Lisp コードを書いたことがありますか?
私は効率の議論を支持しません。まず、LET* を LET と同じくらい効率的なものにコンパイルできるケースを認識することは、それほど難しいことではないようです。第 2 に、CL 仕様には、効率性を考慮して設計されたとはまったく思えないものがたくさんあります。(型宣言を伴う LOOP を最後に見たのはいつですか? それらを理解するのは非常に難しいので、私はそれらが使用されているのを見たことがありません。) 1980 年代後半の Dick Gabriel のベンチマークの前は、CLは実に遅かったです。
これは下位互換性のもう 1 つのケースのようです。賢明なことに、LET のような基本的なものを壊す危険を冒す人は誰もいませんでした。これは私の予感でしたが、LET が LET* よりもばかばかしいほど簡単に多くのことを行った、私が見逃していたばかばかしいほど単純なケースを誰も持っていないと聞いて安心しました。
python - プログラムで Microsoft Word 文書にコメントを挿入する方法は?
MS Word ドキュメントの特定の場所に (Word のコメント機能を使用して) プログラムでコメントを挿入する方法を探しています。MS Word 標準形式の最近のバージョンで使用でき、Windows 以外の環境 (理想的には Python および/または Common Lisp を使用) で実装可能なアプローチを好みます。OpenXML SDK を見てきましたが、解決策が見つからないようです。