对于一个大学项目,我必须实现一个名为 takeNthEven 的函数,该函数借助 foldLeft 在列表中找到第n个偶数。例如:
takeNthEven(SinglyLinkedIntList(0,8,4,12,2,10,6,14,1,9,5,13,3,11,7,15,18,3),3)
应返回:SinglyLinkedIntList(4,18)
到目前为止我的尝试:
def takeNthEven(input: IntList,n: Int): IntList = {
var temp = SinglyLinkedIntList()
input.foldLeft(0 -> 0) {
case(acc,n) => if (acc == 2 || !(2 to (acc-1)).exists(x => i % x == 0)) temp.append(acc)
}._n
}
但是不幸的是,这甚至无法编译。我不确定如何继续执行此算法,有人可以帮我解决这个问题吗?我是函数编程的新手,不知道该怎么做