Я уже обманывал с отступом, но это выглядит правильно для меня. Может ли кто-нибудь увидеть, где я ошибаюсь?«Возможно неправильное отступы» в заявлении дела Haskell
deposit :: NodeType -> NodeType -> Amount -> Node
deposit (Income income) (Account bal grow) amount =
Account (bal + transfer) grow where transfer = case amount of
AbsoluteAmount amount -> min income amount -- This is line 34
RelativeAmount percent -> (min 1.0 percent) * income
Сообщение об ошибке я получаю:
Prelude> :load BudgetFlow.hs
[1 of 1] Compiling Main (BudgetFlow.hs, interpreted)
BudgetFlow.hs:34:5: parse error (possibly incorrect indentation)
Failed, modules loaded: none.
линии 34 (строка с ошибкой синтаксического анализа) является строка, которая начинается AbsoluteAmount
(я пометил его с комментарием выше). Я попытался поставить оператор case
на свою собственную строку и отстутнуть два случая полностью справа от ключевого слова of
, но я все равно получаю такое же сообщение об ошибке. Большое спасибо за любую помощь!
Это сделало. Спасибо! –
Чтобы быть точным: блок, введенный 'case', должен быть более глубоким отступом, чем блок, введенный' where'. Любое изменение, которое удовлетворяет этим критериям, будет работать - 'where' не _required_, чтобы быть один на линии. –