Вы также можете сбросить бит Control.Arrow и написать:

у включить более одного оператора case в функцию Haskell (пример гипотетической функции см. Ниже).

Тем не менее, это не законно Haskell. Какой лучший способ сделать то же самое? Кроме того, если операторы case ничего не возвращают, а просто устанавливают какое-то значение, почему не разрешено иметь в функции более одного оператора case?

(Я бы получил «ошибка синтаксического анализа при вводе` case '"в строке 5)

tester x y =  
   case (x < 0) of  
       True -> "less than zero."  
       False -> "greater than or equal to zero."  
   case (y == "foo")  
       True -> "the name is foo."  
       False -> "the name is not foo." 

Обратите внимание, что если бы моя функция была просто:

tester x y =  
   case (x < 0) of  
       True -> "less than zero."  
       False -> "greater than or equal to zero."

... тогда это будет компилироваться.

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

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