【发布时间】:2011-01-17 10:34:01
【问题描述】:
如何在scala中定义这个类
data NestedList a = Elem a | List [NestedList a]
这在 Haskell 中意味着 NestedList 是一个可以包含 Elem 或另一个 NestedList 的类型。是否可以在 scala 中进行这种递归定义?
其实这就是我想要实现的目标
在此页面中查看Problem 7。
已更新....
按照下面的答案,我为Elem 和NList 创建了NestedList Trait 和case 类。
试图实现flatten,我被困在这里..
def flatten[T](xs: NestedList[T]): List[T] = xs match{
case Elem(xs) => List(xs)
//case NList //have to fill this case
}
【问题讨论】:
标签: scala haskell functional-programming