Haskell 我怎样才能找到操作员的类型+&引用;?

Haskell 我怎样才能找到操作员的类型+&引用;?,haskell,Haskell,在GHCi版本8.6.3()中,我想知道如何找到运算符“+”的类型。我想看看它的类型是numa,b,c=>a->b->c还是numa,b,c=>(a,b)->c 但我找不出它的类型。它还以未知方式影响下一个表达式。为什么我失败了,我该怎么办 :type + :type not <interactive>:1:1: error: parse error on input ‘+’ :type not not :: Bool -> Bool => "12"

在GHCi版本8.6.3()中,我想知道如何找到运算符“+”的类型。我想看看它的类型是
numa,b,c=>a->b->c
还是
numa,b,c=>(a,b)->c

但我找不出它的类型。它还以未知方式影响下一个表达式。为什么我失败了,我该怎么办

   :type +
   :type not
<interactive>:1:1: error: parse error on input ‘+’
   :type not
not :: Bool -> Bool
=> "12"
:键入+
:不输入
:1:1:错误:分析输入“+”时出错
:不输入
不::Bool->Bool
=> "12"
这样:

> :type (+)
(+) :: Num a => a -> a -> a
而且

> :t (+) 4
(+) 4 :: Num a => a -> a

> :t (+) 4 3
(+) 4 3 :: Num a => a

在Haskell的控制台中,您必须使用
:t
键为其指定一个值,如您在程序中使用的值,例如:

plus = +
将给出一个错误

plus = (+)
没关系:

ghci> :t plus
ghci> :t (+)

Num a => a -> a -> b
因此:

也会给你一个错误

但是

没关系:

:t plusOne'
:t plusOne
:t (1 +)
:t (+ 1)

Num a => a -> a
最后:

twoPlusOne = 2 + 1

:t twoPlusOne
:t 2 + 1

Num a => b

在关于“部分”的第一个haskell问题中,您已经回答了这个问题。这只是语法。请看那里的评论。。这毕竟不是你的问题。:)@Tim
+
在Haskell中不是有效的表达式,因此它没有类型。@Tim
+
是一个标识符。(我不知道知道这对你有什么帮助,也不知道你想学什么,所以我恐怕只能进一步回答你在这里提出的确切问题。)@Tim Advanced用户经常会变得马虎,因为对他们来说,一些想法是如此自动,以至于不清楚如何将“功能”和“功能”这两个术语混为一谈“标识符”。我自己在正常的逆向中会把
+
称为一个函数,因为在不重要的时候总是画出这些细微的区别是很累人的……但是当你是一个初学者的时候,它们对理解事物是非常重要的!
:t plusOne'
:t plusOne
:t (1 +)
:t (+ 1)

Num a => a -> a
twoPlusOne = 2 + 1

:t twoPlusOne
:t 2 + 1

Num a => b