首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在haskell中使用双变量的列表理解

在haskell中使用双变量的列表理解
EN

Stack Overflow用户
提问于 2018-05-21 14:51:53
回答 1查看 3K关注 0票数 5

有人知道我如何在haskell中用两个变量来理解列表吗?

例如。

代码语言:javascript
运行
复制
[ x * y  | x <- [1..10]  y <- [1..10]]

它应该会导致

代码语言:javascript
运行
复制
[1,4,9,16,25,36,49,64,81,100]

但实际上它会在ghci中产生

代码语言:javascript
运行
复制
<interactive>:13:23-24: error:
    parse error on input ‘<-’
    Perhaps this statement should be within a 'do' block?
EN

回答 1

Stack Overflow用户

发布于 2018-05-21 15:01:21

您需要将这两个范围拉链到一起:

代码语言:javascript
运行
复制
[ x * y | (x, y) <- zip [1..10] [1..10] ]

您可以有两个独立的迭代器,用逗号分隔。

代码语言:javascript
运行
复制
[ x * y | x <- [1..10], y <-[1..10] ]

但是这会计算两个集合的笛卡儿积,从而得到一个完整的乘法表,而不是一个正方形的列表。

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

https://stackoverflow.com/questions/50451401

复制
相关文章

相似问题

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