gpt4 book ai didi

haskell - 如何编写没有参数的 Haskell 函数?

转载 作者:行者123 更新时间:2023-12-03 22:53:31 25 4
gpt4 key购买 nike

我有一个名为 e6 的函数声明.我需要更换 undefined通过一些代码并使其工作。

e6 :: Int -> Int -> Int
e6 = undefined

我知道例如
add :: Int -> Int -> Int
add a b = a + b

它接受参数 a 和 b,然后返回 a + b。但是我怎么能写一个没有参数的函数。我试过
e6 :: Int -> Int -> Int
e6 = 2 + 3

它说:

No instance for (Num (Int -> Int -> Int)) arising from a use of '+'

最佳答案

不太清楚正确的修复方法是什么,因为我不太清楚你想要什么。以下是您想要的一些可能的解释。

  • 你要e6等价于常数 5 ,通过计算 2+3 .由于这不是函数,因此不应在其签名中使用函数类型。
    e6 :: Int
    e6 = 2 + 3
  • 你要e6成为一个函数,就像 add是,但总是返回 2+3而不是 a+b ——也就是说,忽略它的论点,即使它仍然有它们。那么类型签名就可以了,但是您需要显式忽略参数。
    e6 :: Int -> Int -> Int
    e6 _ _ = 2 + 3
    -- OR
    e6 a b = 2 + 3
  • 你要e6就像add以各种方式,但您不想在定义 e6 时明确命名其参数.然后,如果您没有将参数提供给 e6 , 你也不能给 + 提供参数.所以:
     e6 :: Int -> Int -> Int
    e6 = (+)
    (+)是将中缀运算符转换为前缀函数的特殊语法;大致,\a b -> (+) a b\a b -> a + b以同样的方式行事。
  • 关于haskell - 如何编写没有参数的 Haskell 函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52349820/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com