Я все еще учусь Haskell, и мне было интересно, если есть менее многословным способ выразить ниже заявление, используя 1 строку кода:FizzBuzz очистки
map (\x -> (x, (if mod x 3 == 0 then "fizz" else "") ++
if mod x 5 == 0 then "buzz" else "")) [1..100]
производит: [(1,""),(2,""),(3,"fizz"),(4,""),(5,"buzz"),(6,"fizz"),(7,""),(8,""),(9,"fizz"),(10,"buzz"),(11,""),(12,"fizz"),(13,""),(14,""),(15,"fizzbuzz"),(16,""),(17,""),(18,"fizz"),(19,""),(20,"buzz"),(21,"fizz"),(22,""),(23,""),(24,"fizz"),(25,"buzz"),(26,""),(27,"fizz"),(28,""),(29,""),(30,"fizzbuzz")
и т.д.
Мне просто кажется, что я борюсь с синтаксисом больше, чем должен. Я видел другие вопросы для этого в Haskell, но я ищу наиболее оптимальный способ выразить это в одном утверждении (пытаясь понять, как лучше работать с синтаксисом).
http://www.haskell.org/haskellwiki/index.php?title = & search = fizzbuzz & fulltext = Поиск –
@ Серхио, не будь глупым. Вам просто нужны 2 доктора: P –