gpt4 book ai didi

haskell - Haskell 中的 fizzbuzz ?

转载 作者:行者123 更新时间:2023-12-02 19:40:53 24 4
gpt4 key购买 nike

我正在尝试使用列表理解在 haskell 中编写“fizzbuzz”。

为什么以下不起作用,应该如何?

[ if x `mod` 5 == 0 then "BUZZFIZZ"
if x `mod` 3 == 0 then "BUZZ"
if x `mod` 4 == 0 then "FIZZ" | x <- [1..20],
x `mod` 3 == 0,
x `mod` 4 == 0,
x `mod` 5 == 0 ]

最佳答案

这不是有效的 Haskell。 else 分支在 if ... then ... else 中不是可选的。这似乎是使用 case 语句的好机会,而不是使用 if

case (x `rem` 3, x `rem` 5) of
(0,0) -> "fizzbuzz"
(0,_) -> "fizz"
(_,0) -> "buzz"
_ -> show x

此片段适用于传统的“fizzbuzz”;您的代码似乎略有不同。

关于haskell - Haskell 中的 fizzbuzz ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6957260/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com