Clojureでマクロ内のファイルを読み込もうとしています。私はそのラインと私のマクロを起動していClojureのリンクベクトル要素
:
「RD」は私のマクロの名前である(def result (rd [s (FileReader. (File. "myFile.txt"))] (.read s)))
。
私のマクロのプロトタイプが、そのようなものです:
(defmacro rd
([] nil)
([arg] arg)
([[variable val] expr]
)
)
事は、私がFileReaderのを「実行」できるということですが、私は式expr(.read複数可)を「実行」しようとしているとき、それはですsは知られていないので動作しません。
私はベクトルの要素をリンクさせようとしていますので、変数でvalを指すようにします。
私は何をしたいのか分からないので、他の方法を見るならば、私はそれに従います。
ありがとうございました。
なぜ関数ではなくマクロを書きたいのですか? – Shlomi
マクロを使用する必要があるため、関数を使用する方が高速ですが、マクロを使用する必要があります。 – ElMacx
なぜ必須ですか?学校のためですか?マクロはカスタム "構文"を提供するために最も一般的に使用されます。コンパイル時に評価されることに注意してください。コンパイル時にファイルを読み込む必要がありますか?私は正確にあなたが達成する必要があるものについて明確ではない。 – Shlomi