scala の内外を学ぶことに取り組んでいるのですが、最近気になるものに出会いました。
私が理解しているように、効果的に遅延評価されるコードのブロックを関数に渡したい場合は (その場で評価せずに)、次のように入力できます。
def run(a: =>Int):Int = {...}
この意味で、関数 run は、まだ評価されていないコードのブロックを受け取り、それを評価して計算された Int を返します。次に、このアイデアを List データ構造に拡張しようとしました。タイピング:
def run(a: List[=>Int]) = {...}
ただし、これはエラーを返します。なぜこれが禁止されているのか疑問に思っていました。この構文以外に、未評価のコード ブロックのリストを渡すにはどうすればよいでしょうか?