【问题标题】:Why I am getting " parse error on input `<-' "?为什么我在输入 `<-' 上收到“解析错误”?
【发布时间】:2013-06-04 17:18:45
【问题描述】:

这是我的代码

lotto blacklista size board current = [black | blacklista<-action current , warunki blacklista,
                                                if end current
                                                   then if check board blacklista
                                                   then black <- blacklista
                                                          else False
                                                else black <- lotto blacklista size board (next current) ]

你能告诉我为什么我在这一行得到解析错误吗?

then black <- blacklista

【问题讨论】:

  • black &lt;- blacklista 不是表达式。 if-then-else 的分支必须是表达式。我不知道你打算做什么,所以无法猜测如何正确编写它。
  • 另外,请在此处包含您的代码。谁知道当有人遇到您的问题时,pastebin.com 是否会在两年后存活?
  • black 是我的结果列表,当我的迭代器电流足够大(结束电流给出 True)并且表达式检查板 blacklista 给我 True 时,我想将一个项目添加到黑色。但是,如果电流不够大(结束电流给出 False),我不想退缩,这就是为什么我在这里放一个 if-then-else 表达式。
  • blacklista &lt;- action current 表示blacklista 来自action 应用于current 的结果;如果blacklista 已经作为lotto 的参数之一给出,这没有多大意义。
  • blacklista 会发生变化,起初它会是空的,然后它会越来越大。也许我可以做blacklista2 &lt;- action current blacklista然后black &lt;- blacklista2

标签: haskell


【解决方案1】:

您可以在 thenelse 之后尝试 Monad(新的 do 块)。

【讨论】:

    【解决方案2】:

    从你提供的任何上下文来看,你似乎想要这样的东西:

    lotto blacklista size board current = let blist = action current warunki blacklista in
                                              [black | black <- if end current && check board blist then blist
                                                                else lotto blacklista size board (next current)] 
    

    【讨论】:

      猜你喜欢
      • 2020-06-12
      • 2022-06-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-11-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多