我是scala的新手,并且希望以功能样式实现通用的反向功能。我想要以下格式的功能
def customReverse[T](list: List[T]) : List[T] ={
// not implemented yet
}
先谢谢了!
答案 0 :(得分:4)
折叠起来很容易。
def customReverse[T](list: List[T]): List[T] =
list.foldLeft[List[T]](Nil) { (a, b) => b :: a }
foldLeft
在列表中的每对元素之间放置一个二进制运算。因此,如果我们给函数{ (a, b) => b :: a }
命名为<>
(使用infix名称,则在进行这类归约时,所有内容看起来都会更漂亮),左折看起来像这样(当然,伪代码)
customReverse(List(1, 2, 3))
List(1, 2, 3).foldLeft(Nil)(<>)
(((Nil <> 1) <> 2) <> 3)
((List(1) <> 2) <> 3)
(List(2, 1) <> 3)
List(3, 2, 1)
答案 1 :(得分:0)
您可以尝试以下方法
.app__header { ... }
.app__header__search { ... }
.app__header__search__form { ... }
.app__header__search__form__input { ... }
调用函数def customReverse[T](list: List[T]) : List[T] ={
list match{
case Nil => Nil
case x :: xs => customReverse(xs) :+ x
}
}
时,将获得输出
customReverse(List(1,2,3,4))