我知道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
没有成功。如何实现呢?
BTW,似乎在Haskell中(几乎)是一个函数并且是不可变的。所以我应该打电话给&#34; a&#34;:1. An object? (FP is not OOP)
2. Or, a function?
3. Or, a variable?
4. Or, a value?
不确定Haskell喜欢什么术语? 感谢。
答案 0 :(得分:3)
Prelude> let a = 2 :: Int
Prelude> a
2
a
是一个值,它不是一个函数(但函数是值)。
答案 1 :(得分:3)
ghci
是一个交互式控制台,所以,你不能只写a = 2 :: Float
,你必须使用let
形式:
Prelude> let a = 2 :: Float
Prelude> a
2.0
Prelude> :t a
a :: Float
BTW,在Haskell中似乎一切(差不多)都是一个功能而且 不可改变的。所以我应该打电话给&#34; a&#34;:
a
是Float