私はオブジェクトを持っています。与えられたすべての入力を返す有限状態マシン(FSM)を呼び出すことができます。連続的に変更可能なオブジェクトとのインタラクション
case class FSM(...){
def runInput(q:String):(FSM, String) = ...
}
キーボードからの入力を慣用的な方法で連続的に実行するにはどうすればよいですか?
var fsm = FSM('...')
while(true) {
val i = scala.io.StdIn.readLine()
val res = fsm.runInput(i)
fsm = res._1
println(res._2)
}
スタックオーバーフローの問題を避けるには、そのメソッドに '@ tailrec'を付ける必要がありますか? – Atreys
@Atreys、あなたは '@ tailrec'アノテーションの目的/機能を誤解しています。コンパイラが生成するものは変更されません。注釈付きメソッドが末尾再帰型でない場合は、単にコンパイルを停止します。 – jwvh
説明をありがとう – Atreys