type Environment = String => Int
Это говорит о том, что тип Environment
равен типу String => Int
, то есть типу функций, которые принимают String
и возвращают Int
. Следует отметить, что в Scala карта является своего рода функцией (то есть Map[K,V]
является подтипом K => V
). Таким образом, любая функция, которая принимает функцию в качестве аргумента, также может вместо этого взять карту.
Таким образом, чтобы использовать eval
, вы можете передать ему функцию типа String => Int
, которая может быть либо фактической функцией, которую вы определили, и которая принимает строку и возвращает целое число, либо картой, которая отображает строки в целые числа.