Можно ли использовать что-то похожее на where-clauses в Scala? Может быть, есть трюк, о котором я не думал?
Edit:
Спасибо за все ваши ответы, они очень ценятся. Подводить итоги: Локальные вары, vals и defs могут использоваться для достижения почти того же. Для ленивой оценки можно использовать ленивый val (с неявным кэшированием) или определения функций. Обеспечение функциональной чистоты предоставляется программисту.
Теперь остается только один вопрос: существует ли способ определения значений или функций после выражений, в которых они используются? Иногда это кажется намного яснее. Это возможно с помощью полей/методов класса или объекта, но он не работает в методах.
Еще одна вещь, о которой до сих пор не упоминалось в ответах. where-clauses также ограничивают объем выражений, определенных в них. Я не нашел способ достичь этого в Scala.