Если предположить, что нам нужно сохранить if
s как есть, я бы использовал этот отступ
if condition
then result1
else result2
, что приведет к
example x =
if x == 2
then "Input is 2"
else if x > 2
then if x == 3
then "Input is 3"
else "Input is greater than 3"
else "Dunno"
(Примечание: я удалил дополнительныеelse "Dunno"
найдено в исходном коде, поскольку это ошибка)
В качестве альтернативы:
example x =
if x == 2 then
"Input is 2"
else if x > 2 then
if x == 3 then
"Input is 3"
else
"Input is greater than 3"
else
"Dunno"
также хорошо, так как избегает "эффекта лестницы", когда отступ увеличивается.Это потому, что мы следуем схеме
if condition1 then
result1
else if condition2 then
result2
else if condition3 then
result3
...
else
resultN
Конечно, для этого конкретного примера я бы вместо этого использовал охранники и сопоставление с образцом.
example 2 = "Input is 2"
example 3 = "Input is 3"
example x
| x > 2 = "Input is greater than 3"
| otherwise = "Dunno"
(возможно, перенастраивая x > 2
вx > 3
, что эквивалентно целым числам, но более читабельно здесь)