type-inference

    7

    1答えて

    私はexternal package for storing graphsを使用しています。頂点とエッジ型: var graph = new BidirectionalGraph<Vertex, Edge<Vertex>>(); 残念ながら、このグラフパッケージを使用すると、単一の行で頂点に放射エッジを取得することはできませんBidirectionalGraphは、2つのテンプレートを取ります

    8

    1答えて

    と部分的にジェネリック型推論の欠如を中心に作業を私はこのメンバーを持っている(リポジトリで使用されている)のインターフェイスを持つ: T FindById<T, TId>(TId id) where T : class, IEntity<TId> where TId : IEquatable<TId>; これは、呼び出し側がエンティティタイプ(T)を指定することができますし

    6

    1答えて

    型推論について少し調べましたが、私の特定の問題に解決策を適用できないようです。 私は、関数を構築したり渡したりするのに多くの作業をしています。これはint型を推測することができるはずです。私が考えることができる唯一のことは、ラムダ戻り型が型推論アルゴリズムでチェックされていないということです。問題をより明確に示すために、私は不要なロジックを取り除いた。 Func<T> Test<T>(Func<F

    28

    2答えて

    私が知る限り、ランク2型のための決定可能な型チェックアルゴリズムが存在します。 GHCはこの事実を何らかの形で利用していますか?それには実用的な意味がありますか? ランク2型と型推論アルゴリズムのプリンシパル型の概念もありますか?はいの場合、GHCはそれを使用しますか? 階数2以上の他の利点はありますか?nの種類はありますか?

    9

    2答えて

    私は、次の推論のテストを行った: static class InferenceTest { static void TakeInt(int a) { } static int GiveInt() { return 0; } static int TakeAndGiveInt(int a) { return 0; } static void ConsumeA

    5

    1答えて

    私は、次の動作の理解を取得しようとしています: scala> class C[-A, +B <: A] <console>:7: error: contravariant type A occurs in covariant position in type >: Nothing <: A of type B class C[-A, +B <: A]

    8

    2答えて

    私は匿名関数で "匿名のパラメータ" として_を使用することができScalaで聞いた: List(1,2,3).foreach(print(_)) しかし、このコードをコンパイルすることはできません。 scala> def a[T](s: Seq[T]): Seq[T] = s.map(_) <console>:7: error: missing parameter type for exp

    8

    1答えて

    私は以下のコードでtraverse_関数の型推論を改善しようとしている:上記の実行 import scala.language.higherKinds trait Applicative[AF[_]] { def ap[A, B](a: AF[A])(f: AF[A => B]): AF[B] def pure[A](a: A): AF[A] def fma

    7

    2答えて

    私はパラメータとして二つの機能を取り、新しい合成1を返す関数で働いている:私はそれ送信するときに、私は、Tを指定しない場合、コンパイラは文句を言いことに気付きました public static Action<T> Compose<T>(Action<T> first, Action second) { return new Action<T>(arg => { f

    10

    1答えて

    文字列として与えられたHaskell式の型の表現を取得するには、(素早く汚い)方法が必要です。しかし、ドキュメントはかなり迅速に私を失う - 使用GHCのAPI: は、私は現在、3つのオプションを参照してください。 他のタイプの推論ツールを使用する - 私はhaskell-type-extsを試してみることを提案されていますが、最も単純な表現以外のすべてのタイプを入力することはできません。私は他の