Scala, эквивалентный выражениям where в Haskell?

Можно ли использовать что-то похожее на условия where в Scala? Может быть, есть какой-то трюк, о котором я не думал?

Редактировать:

Спасибо за все ваши ответы, они очень ценятся. Подводя итог: Локальные переменные, значения и определения могут быть использованы для достижения почти того же. Для ленивых вычислений можно использовать ленивый val (с неявным кэшированием) или определения функций. Обеспечение функциональной чистоты остается за программистом.

Теперь остается только один вопрос: есть ли способ поместить определения значений или функций после выражений, в которых они используются? Иногда это кажется намного понятнее. Это возможно с полями / методами класса или объекта, но, похоже, не работает в методах.

Еще одна вещь, которая не была упомянута в ответах до сих пор. условия where также ограничивают область выражений, определенных в них. Я не нашел способа добиться этого и в Scala.

Ответы на вопрос(4)

Ваш ответ на вопрос