首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >创建Int和函数列表( Int -> Int -> Int)

创建Int和函数列表( Int -> Int -> Int)
EN

Stack Overflow用户
提问于 2014-08-07 04:02:43
回答 1查看 236关注 0票数 6

除了创建对列表进行简单操作的函数之外,我对haskell非常陌生。我想要创建一个列表,其中包含Int类型的东西和Int -> Int -> Int类型的函数。

以下是我尝试过的:

代码语言:javascript
复制
data Token = Value Int | Operator (Int -> Int -> Int)

tokens :: [Token]
tokens = [12, (+)]

但是我得到了以下错误

代码语言:javascript
复制
Couldn't match expected type `Token'
            with actual type `Integer -> Integer -> Integer'
In the expression: (+)
In the expression: [12, (+)]
In an equation for `tokens': tokens = [12, (+)]

我不知道为什么这不管用,谁能给我指明正确的方向吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-08-07 04:08:19

您需要使用构造函数来获得Token类型的值。例如,12不是Token类型,而是Int类型(好,Num a => a)。类似地,(+)不是一个令牌,而是一个函数Int -> Int -> Int。注意Token /= Int -> Int -> Int

幸运的是,您已经定义了一些构造函数,如Value :: Int -> TokenOperator :: (Int -> Int -> Int) -> Token。所以利用我们得到的信息:

代码语言:javascript
复制
tokens :: [Token]
tokens = [Value 12, Operator (+)]
票数 14
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25173913

复制
相关文章

相似问题

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