sách gpt4 ai đã đi

Haskell,不知道为什么输入 ‘if’ * 出现*解析错误

In lại 作者:行者123 更新时间:2023-12-02 16:58:33 27 4
mua khóa gpt4 Nike

这是获取一个数字,获取其阶乘并将其加倍,但是由于基本情况,如果您输入 0,它会给出 2 作为答案,因此为了绕过它,我使用了 if 语句,但收到错误输入“if”时解析错误。如果你们能提供帮助,我真的很感激:)

fact :: Int -> Int
fact 0 = 1
fact n = n * fact(n-1)

doub :: Int -> Int
doub r = 2 * r

factorialDouble :: IO()
factorialDouble = do
putStr "Enter a Value: "
x <- getLine
let num = (read x) :: Int
if (num == 0) then error "factorial of zero is 0"
else let y = doub (fact num)
putStrLn ("the double of factorial of " ++ x ++ " is " ++ (show y))

1 Câu trả lời

我发现了两个问题应该解决这个问题

  1. 您有一个没有延续的 cho phép:(否则让 y = doub (fact num) ...)。由于您不在 LÀM 内,因此您可能希望将其更改为 let ... in 语句。
  2. Của bạn nếu như 缩进太深。它应该位于 cho phép 下方。

我已经更正了我提到的内容,并且代码对我有用......

fact :: Int -> Int
fact 0 = 1
fact n = n * fact(n-1)

doub :: Int -> Int
doub r = 2 * r

factorialDouble :: IO ()
factorialDouble = do
putStr "Enter a Value: "
x <- getLine
let num = (read x) :: Int
if num == 0 then (error "factorial of zero is 0")
else let y = doub (fact num)
in putStrLn ("the double of factorial of " ++ x ++ " is " ++ (show y))

关于Haskell,不知道为什么输入 ‘if’ * 出现*解析错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26880932/

27 4 0
行者123
Hồ sơ cá nhân

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá Didi Taxi miễn phí
Mã giảm giá Didi Taxi
Giấy chứng nhận ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com