Parsing 如何指定值';在Haskell'中输入s;什么是序曲?

Parsing 如何指定值';在Haskell'中输入s;什么是序曲?,parsing,haskell,types,Parsing,Haskell,Types,我知道Haskell能够推断出值的类型,但我想指定它,我尝试了: Prelude> a=2 :: Float <interactive>:8:2: parse error on input ‘=’ Prelude> Float a=2 :: Float <interactive>:9:8: parse error on input ‘=’ Prelude> let a::Float = 2 <interactive>:10:8:

我知道Haskell能够推断出值的类型,但我想指定它,我尝试了:

Prelude> a=2 :: Float

<interactive>:8:2: parse error on input ‘=’
Prelude> Float a=2 :: Float

<interactive>:9:8: parse error on input ‘=’
Prelude> let a::Float = 2

<interactive>:10:8:
    Illegal type signature: ‘Float’
      Perhaps you intended to use ScopedTypeVariables
    In a pattern type-signature
Prelude> let a::Int = 2

<interactive>:11:8:
    Illegal type signature: ‘Int’
      Perhaps you intended to use ScopedTypeVariables
    In a pattern type-signature
不确定Haskell更喜欢什么术语? 谢谢

a
是一个值,它不是一个函数(但函数是值)


a
是一个值,它不是一个函数(但函数是值)。
ghci
是一个交互式控制台,因此,您不能只编写
a=2::Float
,您必须使用
let
表单:

Prelude> let a = 2 :: Float
Prelude> a
2.0
Prelude> :t a
a :: Float
顺便说一句,在哈斯克尔看来,一切(几乎)都是一个函数,都是 不变的那么我应该称之为“a”:


a
是一个类型为
Float

ghci
的值,是一个交互式控制台,因此,您不能只写
a=2::Float
,您必须使用
let
表单:

Prelude> let a = 2 :: Float
Prelude> a
2.0
Prelude> :t a
a :: Float
顺便说一句,在哈斯克尔看来,一切(几乎)都是一个函数,都是 不变的那么我应该称之为“a”:

a
是类型为
Float

Prelude> let a = 2 :: Float
Prelude> a
2.0
Prelude> :t a
a :: Float