我们可以使用几种方法来表示Haskell中的if else语句?

时间:2018-06-25 03:29:11

标签: haskell

到目前为止,我只能找到3种方法。

首先,if-then-else

第二,模式匹配

第三,使用|。我不知道这叫什么。

在Haskell中还有其他方法可以显示 if else 语句吗?

1 个答案:

答案 0 :(得分:5)

您可以使用Church-encoded Booleans

Prelude> true = \t f -> t
Prelude> false = \t f -> f
Prelude> iff = id
Prelude> iff true "foo" "bar"
"foo"
Prelude> iff false 42 1337
1337

iff函数的作用类似于if..then..else表达式,使您可以在两个值之间进行选择,例如"foo""bar"42和{{ 1}}。根植于lambda演算,这实质上是逻辑分支的基础。有关更多详细信息,请参见链接的文章。

不是我知道您为什么要这样做,但是您可以...