sách gpt4 ai đã đi

涉及 bool 运算和 Do 的 Haskell Guards

In lại 作者:行者123 更新时间:2023-12-02 12:01:54 29 4
mua khóa gpt4 Nike

我刚刚开始使用 wikibook 学习 Haskell,自从我使用 Visual Basic 和 Java 学习了非常基础的 HS 类(class)以来,到目前为止,我的表现还不错,但是当我尝试结合更多内容时,Haskell 的一些奇特功能让我感到困惑比一。其中一本维基书籍存在一个练习问题,即根据用户输入的某些名称编写三个不同的字符串。使用 if-then-else 语句时这很好,但是当我尝试使用防护时,我在第 6 行收到解析错误。

    main = do
putStrLn "What is your name?"
n <- getLine
|(n == "Simon") || (n == "John") || (n == "Phil")
= putStrLn "Help me make this stuff"
|n == "Koen" = putStrLn "How is this a parse error"
|otherwise "Line 11 looks fine to me"

Which reads " error: parse error on input ‘|’"
Is this a problem with the guard | or the operator ||? the error lists it is on 6:9 if that helps.

编辑:既然有人回答了我的第一个问题,我还有一个关于非常相似主题的问题。 Wikibooks Haskell 教程将此列为练习的另一个解决方案,使用 where 语句而不是 if-then-else:

main = do
putStrLn "Hello, what is your name?"
name <- getLine
putStrLn (message name)
Ở đâu
greatlanguage = "I think Haskell is a great programming language."
message "Simon" = greatlanguage
message "John" = greatlanguage
message "Phil" = greatlanguage
message "Koen" = "I think debugging Haskell is fun."
message _ = "Sorry, I don't know you."

是否可以使用||运算符以某种方式将西蒙、约翰和菲尔这 3 行调用伟大语言的行压缩成一行?

1 Câu trả lời

守卫只能插入到函数定义中(格式为 func a b | condition = ...)Và trường hợp block (格式为 case x模式 | 条件 -> ...);您无法按照您尝试的方式将它们插入到 LÀM block 中。您需要在此处使用 if ... then ... else.

关于涉及 bool 运算和 Do 的 Haskell Guards,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53454632/

29 4 0
Bài viết được đề xuất: IIS 与 Windows 身份验证绑定(bind)
Bài viết được đề xuất: java - glassfish 如何对所有应用程序使用一个 jar 文件 - CDI
Bài viết được đề xuất: java -cp . test.java so với java test.java
Bài viết được đề xuất: c - 如何调用某个函数
行者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