我有一個名爲map_tree
功能如下:如何指定的元組類型匿名函數在Scala中
def fold_tree[A,B](f1: A => B) (f2: (A,B,B) => B) (t: Tree[A]) : B = t match {
case Leaf(value) => f1(value)
case Node(value , l, r) => f2 (value, fold_tree (f1) (f2) (l), fold_tree (f1) (f2) (r))
}
,我需要實現一個名爲right_most
函數,接受Tree[A]
並返回A
。這裏是我的嘗試吧:
,但我得到了以下錯誤:
found : ((A, A, A)) => A
required: (A, A, A) => A
fold_tree ((x: A) => x) ((v: (A, A, A)) => v._3) (t)
^
one error found
在我看來就像發現和要求是相同的。那麼錯誤是什麼?另外,我們如何在匿名函數中指定元組類型?爲什麼我需要在函數簽名中指定元組類型。不能斯卡拉推斷它?
什麼是fold_tree定義? – Rumoku
對不起,意外地包含了map_tree。用fold_tree替換它。 –