問題タブ [reader-macro]
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.
clojure - 一般的な Lisp リーダー マクロには、Clojure にはない利点はありますか?
私は最近 Clojure をよく使っていますが、一般的な Lisp リーダー マクロが提供しない機能をまだ理解していません。これを簡単な言葉で説明できますか?
lisp - .sbclrc の演算子 #+ および #-
#+
と の#-
演算子の意味を知っている人はい.sbclrc
ますか? マニュアルでは見つけられませんでした。私はquicklispをインストール#-
した後、私は見る:.sbclrc
SBCL のユーザー マニュアルにも#+
記載されていますが、機能の説明が見つかりませんでした。個々のモジュールのロードに関連するもののように見えます。
それらは SBCL 実装のためだけですか、それとも Common Lisp の一部ですか?
lisp - CommonLispでのリーダーマクロの管理
特定のパッケージ/ファイルにのみ影響するようにリーダーマクロを定義したいと思います。
これまでのところ、これらのファイルをロードすることができました
それを行うためのより良い方法はありますか?
compiler-construction - 読み取りマクロを使用して Lisp コードをコンパイルする
Lisp コードのファイルをバイトコードまたは生のアセンブリ (または fasl ファイル) にコンパイルするときに、読み取りマクロがどうなるかを理解するのに少し苦労しています。あるいは、わかっているけれどわからないということもあるでしょう。私は本当に混乱しています。
読み取りマクロを使用する場合、ソースを用意する必要はありませんか?
その場合、読み取りマクロの関数を構成するソース コードを実行する必要があります。そうしないと、次のようなことができるときにどのように機能しますread-char
か?
そのために、読み取りマクロに事前に定義された変数を使用させたい場合は、その前にすべてのコードを実行する必要があるため、これがランタイムになり、すべてが台無しになります。
その前にコードを実行しないと、上で定義されたものは利用できません。
読み取りマクロを定義する関数またはコンパイラ マクロはどうでしょうか。require
あなたやload
ファイル、またはコンパイルされていないものでない限り、それらはまったく機能しないと思います。しかし、それらがコンパイルされた場合、それらは使用できなくなりますか?
私の推測の一部が正しければ、ファイル全体をコンパイルして後で実行するか、または後で実行するかによって、「マクロで使用できるデータ」と「関数で使用できるマクロ」に大きな違いがあることを意味します。一度に 1 行ずつファイルを解釈します (つまり、式を次々と読み取り、コンパイルし、評価します)。
要するに、1行をそれ以上のマクロ処理などをしなくても実行できる形にコンパイルするには、前の行を読み込んでコンパイルし、実行する必要があるようです。
これらの質問は、各行が入ってくるたびに実行できる場所を解釈するのではなく、lisp のコンパイルに適用されることをもう一度思い出してください。
とりとめのないことで申し訳ありませんが、私はLispが初めてで、それがどのように機能するかをもっと知りたいです.
common-lisp - Common Lisp: 数式を入力するためのより簡単な方法はありますか?
私は Common Lisp を楽しんでいますが、次のような単純な数式を入力するのが本当に苦痛な場合があります。
(確かにこれを変換できますが、ちょっと遅いです。最初に (+ () ()) を書き、次に各ブラケットに (* () ()) を入れます...)
ここで誰かがこれを入力するより良い方法を知っているかどうか疑問に思っています。私は数学マクロを書くことを考えていました。
に展開します
しかし、名前が長い変数の解析は問題です。
誰かがより良い提案をしていますか?
lisp - 独自の読み取りマクロを定義する
Common Lisp には などの read マクロがありますが、read マクロは'
#'
#P
どのように書けばよいのでしょうか?
このような:
clojure - if-clojurescript マクロはありますか?
ファイルがClojureまたはClojurescriptでコンパイルされているかどうかに応じて、異なる式を挿入できるようにするClojureおよびClojureScript用のマクロはありますか?
#ifdef SOME_PLATFORM
基本的には、C/C++ コードに散りばめられているマクロのようなものを探しています。クロスオーバーの一部にしたいが、そのファイルの一部が Clojure/ClojureScript 間で互換性がない場合に役立つと思います。