scala - fpscala:序列()函数中的模式匹配错误
问题描述
我正在关注 Scala 中的函数式编程一书并解决问题 4.4。
即使我从答案键复制并粘贴了代码并且我不确定如何解决,我仍然收到错误消息。
def sequence[A](a: List[Option[A]]): Option[List[A]] = a match {
case Nil => Some(Nil)
case h :: t => h.flatMap(hh => sequence(t).map(hh :: _))
}
错误:
Error:(45, 12) constructor cannot be instantiated to expected type;
found : scala.collection.immutable.::[A]
required: List[Option[?A1]] where type ?A1 <: A (this is a GADT skolem)
case h :: t => h.flatMap(hh => sequence(t).map(hh :: _))
似乎是什么问题?
编辑:似乎问题是因为我List
在同一目录下的不同文件中定义了。我怎样才能使用这个文件scala.List
而不是我定义的List
?
解决方案
仅隐藏您的自定义List
类:
import custom.{List => _}
List
在从包中导入其他所有内容时隐藏您的实现custom
:
import custom.{List => _, _}
或者你可以反之亦然 - 在导入时给一个类一个新名称(或别名):
import scala.collection.immutable.{List => RenamedList}
scala.List
并参考RenamedList
推荐阅读
- c++ - 将 std::memcpy 结构转换为 std::vector 是未定义的行为吗
那有足够的容量吗? - java - 我不能声明或使用 java swing 对象
- jquery - jQuery Validate:仅在表单成功验证后启用提交按钮
- kotlin - 确保主 JVM 程序会崩溃,即使使用 Kotlin Coroutines 启动也是如此
- javascript - 简化三元运算符
- azure - Ansible中模板内的模板?
- python - Python(WSGI Web 应用程序):上传的文件在第一次被读取之前存储在哪里?
- postgresql - 确定查询命中的关系
- javascript - 在 ASP.NET 中访问 JavaScript 变量
- php -
希望一切安好。
我想显示一系列徽章,这些徽章将根据包含特定字符串的字段显示不同的图像。例如,像这样的事情(虽然我知道这可能是不正确的)
<?php if (stripos($business, "local") !== false) echo "badge-