Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/haskell/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Haskell 混淆应用函子中的纯函数_Haskell - Fatal编程技术网

Haskell 混淆应用函子中的纯函数

Haskell 混淆应用函子中的纯函数,haskell,Haskell,我有以下关于pure函数的示例: Prelude> :t pure ((+1) 1) pure ((+1) 1) :: (Num a, Applicative f) => f a 在f包装的a的具体类型之上是什么 例如,f(结构)如下所示: Prelude> pure ((+1) 1) :: Maybe Int Just 2 以下各项的结构是什么: pure ((+1) 1) ? 第二个示例: Prelude> :t pure ((+1) 1) :: [Int] p

我有以下关于
pure
函数的示例:

Prelude> :t pure ((+1) 1)
pure ((+1) 1) :: (Num a, Applicative f) => f a
f
包装的
a
的具体类型之上是什么

例如,
f
(结构)如下所示:

Prelude> pure ((+1) 1) :: Maybe Int
Just 2
以下各项的结构是什么:

pure ((+1) 1)
?

第二个示例:

Prelude> :t pure ((+1) 1) :: [Int]
pure ((+1) 1) :: [Int] :: [Int]
为什么GHCi会显示两次类型,即
:[Int]:[Int]
,而不仅仅是
:[Int]

  • f
    a
    都是类型变量。没有具体的类型。它将使用周围上下文所需的任何类型

  • 键入
    :t EXPR
    时,ghci会将该类型打印为
    EXPR::type
    。第一个
    ::[Int]
    是您键入的表达式的一部分;第二个
    ::[Int]
    是ghci计算的类型

  • f
    a
    都是类型变量。没有具体的类型。它将使用周围上下文所需的任何类型

  • 键入
    :t EXPR
    时,ghci会将该类型打印为
    EXPR::type
    。第一个
    ::[Int]
    是您键入的表达式的一部分;第二个
    ::[Int]
    是ghci计算的类型


  • 我不明白你的第一个问题。至于第二个:GHCi只是重复了你所问的表达式(
    pure(+1)1):[Int]
    ),然后跟在它后面的是推断的类型(这在本例中很无聊,因为你已经明确写出了你想要的类型,导致了签名的精确复制)。谢谢,我不明白你的第一个问题。至于第二个:GHCi只是重复了你所问的表达式(
    pure(+1)1):[Int]
    ),然后跟在它后面的是推断的类型(这在本例中很无聊,因为你已经明确写出了你想要的类型,导致了签名的精确复制)。谢谢