我正在基於C++中的自定義數據結構list_t的項目工作。 這裏是預定義的函數,它可以幫助我操作這個list_t,並且我被要求寫入的函數被稱爲insert_list(list_t,list_t,int)是尾遞歸的。 typedef Recursive_list list_t;
// EFFECTS: returns true if list is empty, false otherwise
我想一個函數f適用於List的每個元素,並在第一個錯誤不會停止,但是隻能扔過去的錯誤(如果有的話): @annotation.tailrec
def tryAll[A](xs: List[A])(f: A => Unit): Unit = {
xs match {
case x :: xt =>
try {
f(x)
} finally {
我想這個遞歸函數轉換成尾遞歸函數 def sumOfFractions(n: Int): Double = {
require(n > 0, "Parameter n has to be greater than 0");
if (n==1)
1.0
else
1.0/n + sumOfFractions(n - 1)
}
我認爲,這個解決方
我想找到一個二叉樹的尾遞歸摺疊函數。鑑於以下定義: // From the book "Functional Programming in Scala", page 45
sealed trait Tree[+A]
case class Leaf[A](value: A) extends Tree[A]
case class Branch[A](left: Tree[A], right: T