gpt4 book ai didi

if-statement - 解析 Haskell 代码中输入 ‘if’ 的错误

转载 作者:行者123 更新时间:2023-12-03 07:59:50 25 4
gpt4 key购买 nike

我正在尝试使用 Haskell,但我是这种编程语言的新手。我正在运行此代码,该代码旨在在函数的整数大于 50 时打印 Greater,而在函数以小于 50 的整数运行时打印 Less。

printLessorGreater :: Int -> String
if a > 50
then return ("Greater")
else return ("Less")

main = do
print(printLessorGreater 10)
但是,当我运行代码时,它给了我这个错误:
main.hs:2:5: error: parse error on input ‘if’
我去了5号线,那里什么都没有。有谁知道此时如何解决此错误?我会很感激!

最佳答案

您的函数子句没有“头”。您需要指定函数的名称和可选模式:

printLessorGreater :: Int -> String
printLessorGreater a = if a > 50 then return ("Greater") else return ("Less")
但这仍然行不通。三 return不等于 return命令式语言中的语句。 return :: Monad m => a -> m a 注入(inject)一元类型的值。虽然列表是单子(monad)类型,但如果使用列表单子(monad),则只能使用 returnChar在这种情况下的 Actor 。
因此,您应该将其重写为:
printLessorGreater :: Int -> String
printLessorGreater a = if a > 50 then "Greater" else "Less"
或有 guard :
printLessorGreater :: Int -> String
printLessorGreater a
| a > 50 = "Greater"
| otherwise = "Less"

关于if-statement - 解析 Haskell 代码中输入 ‘if’ 的错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64543607/

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