Я все еще изучаю Haskell, и мне было интересно, есть ли менее подробный способ выразить приведенное ниже утверждение с помощью 1 строки кода:
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, но я ищу наиболее оптимальный способ выразить это в одном выражении (пытаясь понять, как лучше работать с синтаксисом).