hygiene

    5

    1答えて

    私は、スキームをよく理解しようとするために、小さなスキームのような言語をPythonで記述しようとしています。 問題は、私が構文オブジェクトに固執していることです。私はそれらを実装することはできません。なぜなら、彼らが何のために、そしてどのように機能するのかを本当に理解していないからです。 これらを理解しようとすると、DrRacketのシンタックスオブジェクトで少し演奏しました。 #'(+ 2 3

    2

    1答えて

    私はXのマクロ内で定義されたm!の間で "衛生"が衝突するのを防ぐと思っていましたが、そうでないことが判明しました。私は何を誤解していますか? macro_rules! m { ($e:expr) => { const X: i32 = $e; } } m!(0); m!(1); fn main() { m!(2); m!(3);

    5

    2答えて

    私はサードパーティのクラスに機能を追加するmixinモジュールを書いています。明らかに、私がサードパーティのクラスとそのクライアントにアクセス可能にしたいメソッドとインスタンス変数のいくつか。これらはmixinモジュールのパブリックインターフェイスを構成します。 しかし、特定の他のメソッドとインスタンス変数をカプセル化する必要があります。ミキシングクラスのメソッドやインスタンス変数を誤って上書きし

    2

    1答えて

    別の識別子の別名としてp挙動構文パラメータようsyntax-parameterizeは一般make-rename-transformerと組み合わせて使用​​されている:tmpはletによって結合識別子であるとして上記のコードは、うまく機能 #lang racket (require racket/stxparam) (define-syntax-parameter p #f) (def

    3

    1答えて

    私は、複数の戻りオブジェクトを必要とする多くのメソッドを持つJavaでプロジェクトをやっています。このために、私は戻りオブジェクトをカプセル化するプライベートクラスを作成しなければなりません。オブジェクトは、コード内のFontResultがフォント名とフォントサイズを返しますが、必要な戻り値の型ごとに常に新しいオブジェクトを作成するので意味があります。どういうわけか、Javaの記述方法を迂回しよう