以下函数定义/声明的含义:
maxCollatz :: (Integer, Integer)
我感到困惑,因为我不确定参数是什么,因此产生了什么。因为通常函数定义中有->
。 E. g。 Int -> Int
。
P.S。再次抱歉这类问题。
答案 0 :(得分:8)
maxCollatz
是一对整数(Integer, Integer)
。它不是一个功能,它不需要任何参数,也不会被称为产生任何东西;它只是 一对整数。
在Haskell中声明类型然后实现顶级声明的语法是定义值的语法。函数是值,因此它们包含在其中,但其他一切都是如此。
答案 1 :(得分:1)
代码行是有效的函数签名,因为理解函数不必接受任何参数非常重要。
函数所采用的参数数量称为arity.
在逻辑学,数学和计算机科学中,函数或操作的优点是函数或操作接受的参数或操作数的数量。
在这种情况下,函数接受0个参数并且是arity 0.具有arity 0的函数通常被称为常量或nullary函数。
在Python中,类似的函数看起来像这样
def pair():
return (1,1)
如果您熟悉Python,很明显该函数不带参数并返回一对数字。这正是您提供的功能签名所描述的内容。
答案 2 :(得分:0)
此函数不带任何参数,因此它只是两个整数的常量元组(或对)。
答案 3 :(得分:0)
这是一个函数签名,而不是整个函数定义。
这是一个常数,而不是一个真正的功能" (我已经看过辩论了)。它返回2个整数的元组,但不会取任何东西。