Haskell - 多个IF语句

时间:2016-02-13 22:53:25

标签: haskell

enter image description here

我想在Haskell中实现上面的DPLL算法。但问题是我不知道如何运行多个if语句。 所以我在想,你可以为前两个if语句模式匹配。但你不能为第三和第四个做到这一点?因为它们都必须运行并且return语句也必须运行。

如何在Haskell中创建多个if语句?我对Haskell也很陌生,所以我无法做任何“复杂”的事情。

1 个答案:

答案 0 :(得分:4)

使用图案防护装置。例如

dpll clauses symbols modell
  | "all clauses true" = true
  | "some clauses false" = false
  | (p,value) <- find_pure_symbol symbols clauses model,
    nonnull p = dpll clauses ...
  | (p,value) <- find_unit_clause clauses model,
    nonnull p = dpll clauses ...
  | p <- first symbols, r <- rest symbols =
                dpll clauses ... || dpll clauses ....

(看起来并非所有条款都是真的并不意味着某些条款是错误的,否则你永远无法达到第3和以下的情况。)

然后挑战是制定条件,在示例中我用&#34;标记它们。在他们周围,但他们是Bool类型的正常haskell表达。