3

次のように、署名/構造のペアを構造内に配置したい:

structure Outer :> OUTER =
struct
    signature INNER =
    sig
        ...
    end

    structure Inner :> INNER =
    struct
    ...
    end
end

ただし、最も単純な例でもエラーが発生します。

../test.sml:1.18-2.6 エラー: 構文エラー: STRUCT を EQUALOP に置き換えます
../test.sml:5.6 エラー: END で構文エラーが見つかりました

署名は構造内では許可されていないようです。この機能を実現する最善の方法は何ですか?

4

2 に答える 2

3

構造体はSMLにネストされますが、署名はネストされません。実現したい機能が明確ではありません。

  • 名前付き署名を非表示にすることはできません。

  • 構造体で宣言された型に署名をINNER依存させることは、ファイブレーション(節)Outerによって実現されます。プログラミング言語の高度なタイプに関するベンジャミン・ピアスの本のハーパーとピアスによるチュートリアルには、ファイブレーションに関する長さのセクションがあります。where type

于 2010-01-28T23:22:35.740 に答える