Я читал описание инструмента Scala WartRemover и был сбит с толку одним из пунктов, которые у них были. В описании сказано следующее:
return
прерывает ссылочную прозрачность. Рефакторинг для завершения вычислений безопасным способом.// Won't compile: return is disabled def foo(n:Int): Int = return n + 1 def foo(ns: List[Int]): Any = ns.map(n => return n + 1)
Это не имеет никакого смысла для меня, и оба примера выглядят ссылочно прозрачными. Есть ли какой-то способ, в котором ключевое слово return
делает его более вероятным для функции, нарушающей ссылочную прозрачность? Я просто полностью не понимаю их точку зрения?