【发布时间】:2012-08-23 00:57:27
【问题描述】:
有时我会花一些时间来玩 Scala,尽管我无法在自己的工作中使用它(到目前为止),但它的混合功能对我很有吸引力。对于踢球,我决定以最通用的方式尝试前几个 99 Haskell Problems — 操作并返回任何类型的适用集合。前几个问题并不太难,但我发现自己被flatten 完全阻碍了。我就是不知道怎么打这样的东西。
具体来说我的问题:是否可以编写一个类型安全的函数来展平任意嵌套的SeqLikes?比如说,
flatten(List(Array(List(1, 2, 3), List(4, 5, 6)), Array(List(7, 8, 9), List(10, 11, 12))))
会回来
List(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12): List[Int]
?请注意,这与 Haskell 和 Scala 问题集中的问题并不完全相同。我正在尝试编写一个函数,该函数不是扁平化异构列表,而是扁平化同质但嵌套的序列。
在网上搜索时,我找到了该问题的 translation into Scala,但它运行并返回 List[Any]。我是否正确,这需要某种类型的递归?还是我把它弄得更难了?
【问题讨论】:
-
请将您的
reverse问题作为单独的 SO 问题,因为它与主要问题无关 -
差不多就可以了,只是我无法将它变成通用的 WRT 序列类型。