type-inference

    0热度

    2回答

    我写Haskell代码练习尾递归逆一个列表并想出了这个解决方案: reverseh' [] list = list reverseh' (x:xs) list = reverseh' (xs) (x ++ list) reverse' x = reverseh' x [] 只与名单列表的作品,但我想它是有类型签名[a] -> [a]。 你能解释我在做什么错吗?

    8热度

    2回答

    我目前编码在斯卡拉,我认为我的自我是一个新手。 我有3个班级超出了我的控制范围,这意味着我无法更改它们。 class P class A { def m(p: P): A = { println("A.m"); this } } class B { def m(p: P): B = { println("B.m"); this } } 这是一个简化的例子,实际的

    2热度

    3回答

    我不明白类型推断的目的是什么,将其添加到语言中有什么好处,是否有任何特殊用途,如在C + + 11自动关键词? 我看到它就像一个插件,因为我真的不知道情况下所产生的类型事先不知道不一定 (我指的是使用关键字变种) 谢谢

    0热度

    1回答

    在下面的代码段 class T {} var dummy : Int = Int.init() class S : T{ override init() { super.init() var dummy2 :() = Int.init() } } dummy的类型是Int,但dummy2类型是()。 如果从相同的表达式推断出它们的类型如何不同?

    3热度

    1回答

    let rec getElement list index = match list with | [] -> raise OutOfBoundException | first::elems -> if index = 0 then first else getElement elems index-1;; 我不明白为什么这个函数类型(INT列表 - > INT - > INT),而不是

    1热度

    1回答

    我是Haskell世界的新手,所以这可能是一个基本问题。 难道这代码: (Monomio (Numero (Integer 15)) (Integer 20)) : data Numero = Integer Integer | Rational Rational | Double Double deriving (Show) data Element

    3热度

    2回答

    scala.collection.immutable.Queue的enqueue函数被重载。 def enqueue[B >: A](elem: B]): Queue[B] def enqueue[B >: A](iter: Iterable[B]): Queue[B] 第一个签名允许您将单个项目添加到队列中,后者允许您添加多个项目。 我正在研究图搜索算法,并使用一个队列来跟踪我到目前为止遍

    0热度

    1回答

    我有一个是这样定义 def func[V: ClassTag, VD <: kafka.serializer.Decoder[V]](implicit tag: ClassTag[VD]) = {} 我的VD类的名字,我要当例如调用此函数的字符串使用Scala的功能com.company.CustomDecoder。如何用正确的ClassTag调用上面的函数? 阐述: 我可以调用函数作为 fu

    17热度

    2回答

    推断请看下面的例子: class Test { public void Fun<T>(Func<T, T> f) { } public string Fun2(string test) { return ""; } public Test() { Fun<string>(Fun2);

    1热度

    1回答

    下面是从楼梯书(有一些修改)的例子: object Example { class Queue[+T] private ( private[this] var leading: List[T], private [this] var trailing: List[T] ) { private def mirror: