有时我会花一些时间玩 Scala,尽管我无法在我自己的工作中使用它(到目前为止),但它的混合功能对我很有吸引力。对于踢球,我决定以最通用的方式尝试前几个99 Haskell 问题——对任何类型的适用集合进行操作并返回。前几个问题并不太难,但我发现自己完全被flatten
. 我只是不知道如何输入这样的东西。
具体来说我的问题:是否可以编写一个类型安全的函数来展平任意嵌套SeqLike
的 s?所以说,
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 问题集中的问题并不完全相同。我正在尝试编写一个函数,它不是扁平化异构列表,而是扁平化同质但嵌套的序列。
在网上搜索我找到了该问题的Scala 翻译,但它运行并返回 List[Any]。我是否正确,这需要某种类型的递归?还是我把它弄得比现在更难?