我有以下特质定义:
at [object Object].<anonymous> (D:\Program Files\Appium\node_modules\appium\lib\devices\android\android-common.js:344:9)
at FSReqWrap.oncomplete (fs.js:95:15)
和一个功能:
sealed trait List[+A]
// `List` data type, parameterized on a type, `A`
case object Nil extends List[Nothing]
// A `List` data constructor representing the empty list
/* Another data constructor, representing nonempty lists. Note that `tail` is another `List[A]`,
which may be `Nil` or another `Cons`.
*/
case class Cons[+A](head: A, tail: List[A]) extends List[A]
我的问题是, def add1(l: List[Int]): List[Int] =
foldRight(l, Nil:List[Int])((h,t) => Cons(h+1,t))
是什么意思?这是否意味着,我传递的Nil:List[Int]
列表的类型带有Nil
符号?
答案 0 :(得分:3)
由于 $ python -c "import ssl; print ssl.OPENSSL_VERSION"
(及其变体)是根据第一个参数列表确定类型参数,因此您不能简单地传递$('body').on('keydown','#ciao1',function(e){...
,因为类型将派生为fold
(您还会看到第二个参数列表不匹配)。您可以使用类型归档来告知Nil
类型为List[Nothing]
。您还可以将Nil
作为类型参数传递:
List[Int]
作为参考,List[Int]
签名是这样的:
foldRight[List[Int]](l, Nil)((h,t) => Cons(h+1,t))