は、私はこのコードで困惑した非常に少なくする必要があるで名前付きV無名のデータ型の引数は<a href="https://www.manning.com/books/type-driven-development-with-idris" rel="nofollow">Type Driven Development with Idris</a>の6章からのコードで
data DataStore : Type -> Type where
MkData : (size : Nat) ->
(items : Vect size schema) ->
DataStore schema
私はschema
は未定義ているように見えるので、それがコンパイルされないかもしれないと思いましたか、どうにかして最初のパラメータDataStore
に結びついてください。しかし、それが正常にロードし、そのように使用することができます。
*DataStore> the (DataStore String) $ MkData 2 ["Fred", "Wilma"]
MkData 2 ["Fred", "Wilma"] : DataStore String
私はDataStore
への最初の引数はそうのようschema
命名される必要があるであろうことを考えた:
data DataStore : (schema : Type) -> Type where
MkData : (size : Nat) ->
(items : Vect size schema) ->
DataStore schema
この定義にも同様に使用することができます最初のもの。
私は、2つの定義の間に意味の違いがあり、誰かが私の間違った直感で私を助けることができるかどうか疑問に思っています。schema
は定義されていません。