内部再帰ヘルパー関数を使用して関数を記述する必要があることが常にわかります。これは、外部関数と同じパラメーター リストを使用しますが、追加のアキュムレータ引数のみを使用します。
def encode(tree : Tree, text: String):String = {
def rec(tree: Tree, text:String, result:String):String = ???
rec(tree, text, "")
}
これを次のように単純化したい:
def encode(tree : Tree, text: String)(implicit result:String = "" ):String
これは内部関数定義を削除できますが、それには問題があります。lookup
内部 encode
で関数を呼び出す必要があるかどうかを確認し、関数への暗黙的なパスlookup
である String 型の暗黙的なパラメーターも取ります。 implicit result:String = ""
lookup
def lookup(tree : Tree, text: String)(implicit result:String = "" ):String
これが発生したくないのですが、暗黙のパラメーターlookup
がその関数の外部で解決されないように制限する方法はありますか? または他のより良いアイデア?