2017-05-11 4 views
2

タイトルのとおりです。私がよく知っている他の依存システム(AgdaとCoq)では、ベクトルタイプはVect : Type -> Nat -> Typeと定義されています。インデックスの前にパラメータを置くことは意味があり、どんな場合でもベクトル型の標準と思われます。 IdrisはなぜVect : Nat -> Type -> Typeを使用しますか?IdrisがData.Vectの引数をsizeとitem-typeの順に並べるのはなぜですか?

答えて

4

Idrisでは、パラメータとインデックスの間には、目に見える違いはありません。型パラメータを持つことは、Functor (Vect n)インスタンスにとって便利です。

+0

インターフェイスインスタンスの場合!ハ!はい、完璧な意味があります。ありがとう! – Zyzzyva

+5

Idrisは以前、 'Vect:Type - > Nat - > Type'を使っていましたが、この[commit](https://github.com/idris-lang/Idris-dev/commit/61d39dabbf63237671a9661064e6b0478add62e4)で変更されました。コミットメッセージの後: "Vectの引数を入れ替えました。 Functor、Applicativeなどのための型クラスインスタンスを書くのがうまくいきました。" –

関連する問題