我还在学习 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 中看到了其他问题,但我正在寻找在单个语句中表达这一点的最佳方式(试图了解如何更好地使用语法)。