Функциональный литерал с параметром call-by-name

Как определить анонимную функцию с параметрами по имени в scala?

Я попробовал следующее:

val fun = (x: Boolean, y: =>Int) => if(x) y else 0

Это хорошо работает с вызовом y, но не с вызовом по имени. Почему?

Ответ 1

Это можно сделать, но несколько иначе: объявить тип отдельно от параметров:

val fun: (Boolean, => Int) => Int = (x, y) => if (x) y else 0