Haskell 没有 -> 的函数定义
Haskell Function Definition without ->
以下函数定义/声明的含义:
maxCollatz :: (Integer, Integer)
我很困惑,因为我不确定参数采用什么以及产生什么。因为函数定义中通常有->
。例如Int -> Int
。
P.S。再次抱歉提出此类问题。
此函数不接受任何参数,因此它只是两个整数的常量元组(或对)。
这是函数签名,不是完整的函数定义。
这是一个常量,而不是 "true function"(我看到它有争议)。它 returns 一个包含 2 个整数的元组,但不接受任何内容。
maxCollatz
是一对整数(Integer, Integer)
。它不是一个函数,它没有参数,也不会被调用来产生任何东西;它只是是一对整数。
声明类型然后在Haskell中实现顶级声明的语法是定义值的语法。函数是值,因此它们包含在其中,但其他所有内容也是如此。
该行代码是一个有效的函数签名,因为了解函数不必采用任何参数很重要。
一个函数接受的参数数量被称为它的 arity.
In logic, mathematics, and computer science, the arity of a function or operation is the number of arguments or operands the function or operation accepts.
在这种情况下,该函数采用 0 个参数并且是 0 个参数。具有 0 个参数的函数通常被称为常量或 nullary 函数。
在 Python 中类似的函数如下所示
def pair():
return (1,1)
如果您熟悉 Python,则很明显此函数不接受任何参数,并且 returns 是一对数字。这正是您提供的函数签名所描述的内容。
以下函数定义/声明的含义:
maxCollatz :: (Integer, Integer)
我很困惑,因为我不确定参数采用什么以及产生什么。因为函数定义中通常有->
。例如Int -> Int
。
P.S。再次抱歉提出此类问题。
此函数不接受任何参数,因此它只是两个整数的常量元组(或对)。
这是函数签名,不是完整的函数定义。
这是一个常量,而不是 "true function"(我看到它有争议)。它 returns 一个包含 2 个整数的元组,但不接受任何内容。
maxCollatz
是一对整数(Integer, Integer)
。它不是一个函数,它没有参数,也不会被调用来产生任何东西;它只是是一对整数。
声明类型然后在Haskell中实现顶级声明的语法是定义值的语法。函数是值,因此它们包含在其中,但其他所有内容也是如此。
该行代码是一个有效的函数签名,因为了解函数不必采用任何参数很重要。
一个函数接受的参数数量被称为它的 arity.
In logic, mathematics, and computer science, the arity of a function or operation is the number of arguments or operands the function or operation accepts.
在这种情况下,该函数采用 0 个参数并且是 0 个参数。具有 0 个参数的函数通常被称为常量或 nullary 函数。
在 Python 中类似的函数如下所示
def pair():
return (1,1)
如果您熟悉 Python,则很明显此函数不接受任何参数,并且 returns 是一对数字。这正是您提供的函数签名所描述的内容。