Haskell中有27种不同的Bool到Bool值

时间:2013-09-10 10:43:58

标签: haskell logic

有人可以解释为什么有27个不同的Bool->Bool值,可以在Haskell中定义11吗?

1 个答案:

答案 0 :(得分:50)

类型Bool有三个值:TrueFalse和底部(评估未完成的表达式或评估变为错误的表达式)。< / p>

然后,从AB有一些指数函数。更确切地说是|B| ^ |A|

因此,3^3 = 27类型的Bool -> Bool函数。

现在,对于问题的第二部分:从底部开始的函数只能是2:一个不断返回的True和一个不断返回False的函数。然后,您必须添加{True, False}{True, False, bottom} 3^2的函数数量。9+2=11。所以,总的来说,你将拥有B个功能。

编辑:以下是11种可能的功能:

11 functions

T位于底部,TrueFFalseconst True。最后一行表示const FalseB函数,而前三行表示测试参数值的函数。这就是前三行将B映射到{{1}}的原因:测试底部的值不会导致除底部之外的任何其他内容。

我希望现在更清楚了。