Size: a a a

2021 March 17

E

Elijah in Haskell Start
progrems2334
Здравствуйте. В одной книжке нашёл такой пример конструкции ветвления:
analyzeGold :: Int -> String
analyzeGold standard =
  if standard == 999
     then "Wow, 999 standard!"
     else if standard == 750
        then "Great! 750 standard."
        else if standard == 585
           then "Not bad! 585 standard."
           else "I don't know such a standard..."

Автор приводил её в пример тому, почему образцы лучше (что не будет такой лестницы).
Сдвинул всё это дело самостоятельно так:
analyzeGold :: Int -> String
analyzeGold standard =
  if standard == 999
     then "Wow, 999 standard!"
  else if standard == 750
     then "Great! 750 standard."
  else if standard == 585
     then "Not bad! 585 standard."
  else "I don't know such a standard..."

Никаких ошибок не вызывается, всё работает также.
Есть ли тут какой-то стандарт (как правильно писать) или можно и так, и так?
Истинный хаскеллист пишет в одну строчку:-)
источник

p

progrems2334 in Haskell Start
Elijah
Истинный хаскеллист пишет в одну строчку:-)
Как так?)
источник

E

Elijah in Haskell Start
progrems2334
Как так?)
Это шутка, но всю эту цепочку можно и правда поместить в одну строчку, дело не в отступах, я думаю, а в том что в некоторых случаях удобнее писать меньше длинных слов типа if, then, else
источник

p

progrems2334 in Haskell Start
Elijah
Это шутка, но всю эту цепочку можно и правда поместить в одну строчку, дело не в отступах, я думаю, а в том что в некоторых случаях удобнее писать меньше длинных слов типа if, then, else
Ну это понятно, но именно интересует нет ли такого соглашения, что если и писать if-ами, то обязательно лесенкой?
источник

E

Elijah in Haskell Start
Я сам только вторую книжку читаю конечно, но не могу представить зачем такое соглашение могло ты понадобиться
источник

p

progrems2334 in Haskell Start
Elijah
Я сам только вторую книжку читаю конечно, но не могу представить зачем такое соглашение могло ты понадобиться
Ну не знаю, например, для того, чтобы твой код было "привычней" читать другому.
источник

A

Aragaer in Haskell Start
else-if в столбик это вполне себе стандартный сишный прием
источник

A

Aragaer in Haskell Start
там тоже вроде как "должно бы получиться" лесенкой, но пишут в столбик и нормально
источник

E

Elijah in Haskell Start
Покажите мне того кому удобнее читать лесенкой, я буду очень удивлен
источник

p

progrems2334 in Haskell Start
Я так понял в Haskell как хочешь, так и пиши.
источник

D

Dreamerinnoise in Haskell Start
progrems2334
Я так понял в Haskell как хочешь, так и пиши.
паттерн матчинг обычно всегда лучше
источник

p

progrems2334 in Haskell Start
Dreamerinnoise
паттерн матчинг обычно всегда лучше
Имею ввиду запись if-then-else можно писать как хочешь.
источник

WB

White Bear in Haskell Start
progrems2334
Ну не знаю, например, для того, чтобы твой код было "привычней" читать другому.
Кому надо тот разберется в твоем коде, а кому нет всегда найдет к чему придраться
источник

Ю

Юрий in Haskell Start
Elijah
Покажите мне того кому удобнее читать лесенкой, я буду очень удивлен
Хм.... Мне удобнее читать лесенкой... Правда, на с++ 😊
источник

к

кана in Haskell Start
progrems2334
Я так понял в Haskell как хочешь, так и пиши.
если там точно нельзя было просто матчить, то я бы так сделалал:

analyzeGold :: Int -> String
analyzeGold standard
 | standard == 999 = "Wow, 999 standard!"
 | standard == 750 = "Great! 750 standard."
 | standard == 585 = "Not bad! 585 standard."
 | otherwise = "I don't know such a standard..."
источник

к

кана in Haskell Start
не то чтобы ифы такой уж частый инструмент в хаскеле кстати, по сравнению с другими языками
источник

p

progrems2334 in Haskell Start
Читаю книжку, много тут способов заifить. И if-then-else, и множественный if, и паттерн матчинг, и case ... of 🤔
источник

SP

Stanislav Popov in Haskell Start
ифы и в других языках не нужны
источник

D

Dreamerinnoise in Haskell Start
progrems2334
Читаю книжку, много тут способов заifить. И if-then-else, и множественный if, и паттерн матчинг, и case ... of 🤔
if это просто сахар
источник

E

Elijah in Haskell Start
кана
если там точно нельзя было просто матчить, то я бы так сделалал:

analyzeGold :: Int -> String
analyzeGold standard
 | standard == 999 = "Wow, 999 standard!"
 | standard == 750 = "Great! 750 standard."
 | standard == 585 = "Not bad! 585 standard."
 | otherwise = "I don't know such a standard..."
++
источник