dependent-type

    36

    2答えて

    Idrisの例がありますが、これは一般的な「現実の」アプリケーションに適用されていますか? 私はハスケルに適度に熟練していますが、そのうちのIdrisはかなり借りているようですが、公式のFAQ /ドキュメントは素晴らしいですが、いくつかの大きな例があれば役に立ちます。目標は実用的なソフトウェア開発のためにIdrisを使用しようとしています。 TIA。

    5

    1答えて

    私は自分自身 Unitのモデル「無限」のベクトルに有限のベクトルを接着するために和タイプを使用して、有限 Vector Sの「 ZipVector」スタイル Applicative作りました 。 data ZipVector a = Unit a | ZipVector (Vector a) deriving (Show, Eq) instance Functor ZipVect

    5

    2答えて

    イドリスで、私は経由して、同じサイズの2つのベクトルを追加することができますその後、サイズ3の二つのベクトルとそれを呼び出す: *MatrixMath> addHelper [1,2,3] [4,5,6] [5, 7, 9] : Vect 3 Integer しかし、それは私がの二つのベクトルにaddHelperを呼び出すしようとすると、コンパイルに失敗します。別のサイズ: *MatrixM

    6

    1答えて

    このタイトルは、あまり説明的ではありませんが、短いタイトルでこれをどのように記述するかわかりません。私はどんな勧告にも感謝しています! 私は私の問題の非常に単純化されたバージョンを提示するつもりです:) だから私は与えられたの正規の建設を生成することができるようになっている型クラス class Known f a where known :: f a を持っています特定のインデックス

    23

    1答えて

    Soタイプの目的は何ですか? Agdaに翻字: data So : Bool → Set where oh : So true Soは論理1までのブール提案を持ち上げます。 OuryとSwierstraの入門書The Power of Piは、テーブルの列によってインデックス付けされた関係代数の例を示しています。私は私が私のプログラムについて証明したいもののために証拠の用語を構築する

    9

    4答えて

    関数、パラメーターの番号、およびそのパラメーターの値をとり、部分的に適用される新しい関数を返す関数apply_nthを書くことができるのではないかと不思議です。 私は、タイプシステムのためにこれは不可能だと感じていますが、私は満足のいく答えを思い付くことができません。私はまた、働くタイプの署名を出すことができません。 言語がよりゆるやかにタイプされていれば、コードはこのように見えると思います。 a

    12

    1答えて

    Scalaの依存メソッドの種類と一緒に遊んで、私は、デフォルトのメソッドのパラメータとの競合が発生しましたメソッドの定義と実装のデフォルト値を使用すると、この例は正常にコンパイルされます。私は間違って何をしていますか?バグですか? P.S.私はScala 2.11.4を使用しています

    6

    1答えて

    最新版のGHCでは、タイプレベルのリストがサポートされています。しかし、私はアプリケーションの型レベルセットを扱う必要があり、型レベルのリストに基づいて型レベルのセットライブラリを実装したいと考えています。しかし、私はHaskellでタイプレベルのセットをサポートしている任意のライブラリがあります:( を開始する場所を知らないが

    7

    2答えて

    練習として、LispのapplyをHaskellで作り直そうとしています。私は実用的な目的でこれを使うつもりはないが、ハスケルの型システムと型システムをよく知る良い機会だと思う。 (だから私は他の人の実装も探していません) 私の考えは次のとおりです。GADTを使って、リストに適用できる関数のタイプを「タグ付け」することができます。したがって、私はNat定義を使用してタイプのリストの長さをエンコード

    14

    1答えて

    型のレベルリストの先頭に何かがあるかどうかを判断する型ファミリがあります。 type family AtHead x xs where AtHead x (x ': xs) = True AtHead y (x ': xs) = False この結果を表すシングルトンを構築したいと思います。これは単純な型のリストでうまく動作します。 data Booly b where