【问题标题】:parse error (possibly incorrect indentation or mismatched brackets) in haskell already indentedhaskell 中的解析错误(可能不正确的缩进或不匹配的括号)已经缩进
【发布时间】:2022-09-28 19:28:43
【问题描述】:
main = do 
    bighead1 :: [Int] -> Bool
    bighead1 n = if a > b then true else

如何摆脱错误? 如果列表中的第一项大于第二项,它应该返回 true

  • 您好,欢迎来到 StackOverflow!问题应该显示出明确的研究努力。你试过什么了?

标签: haskell


【解决方案1】:

代码中有不少错误:

  1. 您没有在 main 中定义函数,而是在之前定义了它
  2. Main 是代码的一个动作部分,它应该读一些东西,打印一些东西,或者写一些东西(do 符号显示了这一点)
  3. 您对bighead1 的定义缺少结束子句
  4. true的使用不正确,应该是True
  5. 您还没有定义您的术语ab,大概是根据n - 如果一个列表习惯上写成nsxs 来表示多个值,或者可能是@987654330 @。

    以下编译并执行某些操作。我不知道它是否符合您的要求,但您可以调整和修改它。

    bighead1 :: [Int] -> Bool
    bighead1 lst = if a > b then True else False
       where
        a = head lst
        b = head $ tail lst
    
    main = do 
       print $ bighead1 [1,2]
    

【讨论】:

    猜你喜欢
    • 2014-05-05
    • 2015-01-26
    • 2018-01-21
    • 1970-01-01
    • 2021-01-25
    • 1970-01-01
    • 2017-06-06
    • 2016-09-28
    • 2021-07-02
    相关资源
    最近更新 更多