Haskell - 多个 IF 语句

Haskell - multiple IF statements

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

如何在 Haskell 中创建多个 if 语句?另外,我对 Haskell 很陌生,所以我无法做任何事情 'complicated'。

使用模式守卫。例如

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种及以后的情况。)

接下来的挑战是制定条件,在示例中我用 " 标记了它们,但它们是 Bool 类型的正常 haskell 表达式。