首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Haskell的前奏曲中指定值的类型?

如何在Haskell的前奏曲中指定值的类型?
EN

Stack Overflow用户
提问于 2016-02-18 04:29:13
回答 2查看 75关注 0票数 0

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

代码语言:javascript
复制
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":

代码语言:javascript
复制
1. An object? (FP is not OOP)
2. Or, a function?
3. Or, a variable?
4. Or, a value?

不知道Haskell更喜欢哪个词?谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-02-18 04:45:30

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

代码语言:javascript
复制
Prelude> let a = 2 :: Float
Prelude> a
2.0
Prelude> :t a
a :: Float

顺便说一句,在Haskell看来,一切(几乎)都是一个函数,是不可变的。所以我应该叫"a":

aFloat类型的值。

票数 3
EN

Stack Overflow用户

发布于 2016-02-18 04:45:03

代码语言:javascript
复制
Prelude> let a = 2 :: Int
Prelude> a
2

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

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35472871

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档