type-inference

    9

    3答えて

    a previous questionの質問に続き、これは共分散の問題として識別されています。 class Program { static void Main(string[] args) { IFactory<IProduct> factory = new Factory(); } } class Factory : IFactory<Prod

    3

    2答えて

    、いくつかのスタックオーバーフローの質問への回答でドン・スチュワートによって書かれたコードを取る: import Control.Monad import qualified Data.HashTable as H import System.Environment main = do [size] <- fmap (fmap read) getArgs m <- H.

    3

    1答えて

    多次元配列(任意のランク)の与えられたサンプリング座標で線形補間を実行する一般的なフィルタリング関数を記述しようとしています。このためには、値とそれに関連する型にヒットするまで、配列のすべての次元を調べる再帰関数テンプレートが必要です。私はboost :: enable_ifを使用して、ディメンションの反復処理をいつ停止するかを検出します。戻り値/型を一番上の関数に "浸透"しようとするまでは正常

    0

    1答えて

    テンプレートパラメータが1つしかない場合、C++テンプレートは型を自動的に控除することができます。たとえば、 template<typename T> void f(const T &t) { cout << t << endl; } f(1); です。 しかし、 template<typename T1, typename T2> void f(const T1 &

    38

    1答えて

    REPLでは、私は関数を定義します。戻り値の型に注意してください。 scala> def next(i: List[String]) = i.map {"0" + _} ::: i.reverse.map {"1" + _} next: (i: List[String])List[java.lang.String] そして、私は文字列 scala> def next(i: List[Stri

    7

    2答えて

    Scalaコンパイラは本当に匿名関数のパラメータの型情報をいつ必要としますか?例えば 、この機能を持た: def callOn[T,R](target: T, f: (T => R)) = f(target) その後、私はこのようにそれを使用することはできません。 callOn(4, _.toString) => error: missing parameter type for e

    2

    1答えて

    私はスカラズを使って、スケアを感じるような感覚を少し持たせました。 どのようにスカラで動作するかを理解するために、私はさまざまな代数構造を実装し始め、Scalazの人々によって言及された振る舞いを見つけました。ここで はファンクタを実装して、私のサンプルコードです: trait Functor[M[_]] { def fmap[A, B](a: M[A], b: A => B): M[B

    4

    1答えて

    カリースタイルポリモーフィックタイプのシステムで期待されているように、以下はうまくいきます。これは「、 let f x = x printfn "%A" (f 2) printfn "%A" (f 3.4) しかし、我々はもう少し複雑な何かをしようとすると、それは、3行目の失敗: - 恒等関数は「>」、実際には各タイプごとに1つの関数の無限の家族です式はint型を持つことが期待されるが、こ

    6

    3答えて

    可能な二重に "VAR" 型推論: Why does var evaluate to System.Object in “foreach (var row in table.Rows)”? は、私はむしろ、 SqlDataReader reader = cmd.ExecuteReader(); DataTable schemaTable = reader.GetSchemaTable();

    2

    2答えて

    Seq.generateUniqueのコードは((Assembly -> seq<Assembly>) -> seq<Assembly> -> seq<Assembly>)であることが制限されています。 open System open System.Collections.Generic open System.Reflection module Seq = let gener