function - 比较haskell中的函数和参数

标签 function haskell compare

Possible Duplicate:
Comparing functions in Haskell

我正在学习haskell,想知道这样的事情可能吗? 我想要的只是比较参数“function”是否等于函数 a 或 b 之一。这个怎么做?

示例代码:

a,b :: Integer -> Integer
a x = x+1
b x = x-1

c function parameter = if function == a 
           then ... parameter -- Do a related stuff
           else ... parameter -- Do b related stuff

最佳答案

据我所知,可以比较两个函数是否相等的唯一情况是它们的域具有有限数量的值。例如,如果您有两个类型的函数:

f, g :: Bool -> A

如果所有输入都相等,则它们相等:

f == g = (f False == g False) && (f True == g True)

但是,对于 Int 的情况,对 Int 的每个可能值进行比较是不切实际且低效的。对于Integer,这是无法完成的,因为Integer是无界的。

正如 @Miguel 在他的评论中正确指出的那样,具有非有限域的函数一般不能进行相等性比较。

关于function - 比较haskell中的函数和参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13215127/

相关文章:

javascript - CYPRESS:检查按钮是否被禁用的函数

python - 访问类方法内的变量

haskell - 证明 Haskell 中名义类型角色需要的最简单示例

haskell - 如何将此实例方法定义移动到类默认值?

javascript - 使用 '===' 比较 JavaScript 中的类型时出现 Visual Studio Code 警告

javascript - 比较 : x == a is true, x == b 为 true,但 a == b 为 false

c++ - 带参数和不带参数的函数之间的执行时间/C++

javascript - 嵌套的 Javascript 如何返回 "pass up" promise ?

haskell - 为什么 Shake 建议禁用空闲垃圾收集?

php - 与 html 相比,使用 PHP 有什么缺点吗?