我知道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":
1. An object? (FP is not OOP)
2. Or, a function?
3. Or, a variable?
4. Or, a value?不知道Haskell更喜欢哪个词?谢谢。
发布于 2016-02-18 04:45:30
ghci是一个交互式控制台,所以不能只编写a = 2 :: Float,您必须使用let表单:
Prelude> let a = 2 :: Float
Prelude> a
2.0
Prelude> :t a
a :: Float顺便说一句,在Haskell看来,一切(几乎)都是一个函数,是不可变的。所以我应该叫"a":
a是Float类型的值。
发布于 2016-02-18 04:45:03
Prelude> let a = 2 :: Int
Prelude> a
2a是一个值,它不是一个函数(但函数是值)。
https://stackoverflow.com/questions/35472871
复制相似问题