Часто у меня есть функция такого шаблона:
f :: a -> b
f x = case x of
... -> g ...
... -> g ...
...
... -> g ...
where g = ...
Для почти этого случая есть синтаксический сахар:
f :: a -> b
f ... = g ...
f ... = g ...
...
f ... = g ...
К сожалению, я не могу привязать к нему свои where
: я, очевидно, получу кучу not in scope
. Я могу сделать g
отдельной функцией, но это некрасиво: пространство имен моего модуля будет засорено служебными функциями. Есть ли обходной путь?
g
, поэтому загрязнение пространства имен является проблемой только внутри вашего собственного модуля. - person Dan Burton   schedule 20.01.2012