私は今夏、ラケットでおもちゃの言葉を作って遊んだことがあります。すべてのフォームは固定されたアリティを持ち、デフォルトで適用されるので、かっこは必要ありません。例えば。 +
は2を有するので、+ 3 + 4 5
は(+ 3 (+ 4 5))
であり、+ + 3 4 5
は(+ (+ 3 4) 5)
である。読み取り時にモジュールに関する情報を取得する方法はありますか?
これを行うには、メインモジュールにシンボルとそのアリティを格納します。読者はそれが特別な形式か手続きかどうかは気にしませんが、ラケットの機能を使ってこれを行うより良い方法がありますか?したがって、私はモジュールのメタデータをインポートし、代わりにそれを構文解析中に照会できますか?
こんにちは。 「読者は気にしていないかどうかは気にしない」「それ」とは何か? メタデータの格納はサブモジュールで行われることがよくあります(ただし、どこで(いつ)!)メタ情報を使用したいのですか? – soegaard
@soegaardリーダのシンボルは、結果の構文の識別子になりますもし私がラケット/ベースの新しい構文を作っていたら、何とかラケット/ベースで "cons"を探して、それがアリティであることを見つけることができますか? – Sylwester
あなた自身のリーダーを書いていますか、それとも内蔵のものを再利用していますか? – soegaard