私の任務は、次のrepeat
ように使用できるカスタム制御構造を作成することです。
var i = 0
repeat {
i = i + 1
}(i > 5)
私は現在、そのための次のコードを持っています:
def repeat(f: => Unit): ((=> Boolean) => Unit) = {
(x) => {
while (x) f
}
}
これを実行すると、f(i = i + 1
)は実行されないようです。
私は正直に言うと、現在のタイプが何であるか完全にはわかりませんx
。明らかに正しくありませんが、ここからどこへ行くべきかを知るのに十分な知識がありません。
私はこれを持っていました:
def repeat(f: => Unit): ((=> Boolean) => Void) = {
(x: (=> Boolean)) => {
while (x) f
}
}
これは明らかに間違ったScalaですが、私の意図をよりよく示していると思います。
私の質問が少し広範で、楽なことを示している場合は申し訳ありませんが、名前によるパラメーターの概念は私にとって非常に新しいものであり、私の本(Programming in Scala)では基本を超えて説明されていません。