私は強い型付けに興味をそそられたので、私はいくつかのHaskellのをしようとしてきた、と私はこれに対処する最善の方法について困惑している:Haskellの多次元配列
で定義されたベクトルデータ型Data.Vectorでは、ネストされた配列を使用して多次元配列を使用できます。しかし、これらはリストから構成され、さまざまな長さのリストは同じデータ型とみなされます(さまざまな長さのタプルとは異なります)。
どのようにこのデータ型を拡張(または類似のものを書き込み)可能性があるのと同じように機能し、異なる長さのベクトルが異なるデータ型であると考えられ、そう有する多次元アレイ/マトリックスを作成しようとしている除きます異なる長さの行(たとえば)はコンパイル時にエラーを起こすでしょうか?
タプルは63個の異なる定義(有効長ごとに1つ)を書き出しているようですが、可能であれば任意の長さのベクトルを処理できるようにしたいと考えています。
1)「型付け」方法:依存型を使用して
は見てみましょう'type-level'と' llvm'パッケージです。直接適用することはできませんが、 'llvm'バインディング内の' Array'、 'Vector'および' Struct'型は、型レベル番号を使って異なる配列長を区別します。 7.6.1のGHCのタイプナットのサポートは、この種のものを実装しやすくするはずです。 –