首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >计算因子中两个序列的笛卡尔乘积

计算因子中两个序列的笛卡尔乘积
EN

Stack Overflow用户
提问于 2012-02-19 12:46:30
回答 2查看 177关注 0票数 3

我刚刚开始涉足Factor。我想计算两个序列的笛卡尔乘积:

代码语言:javascript
运行
复制
{ 1 2 3 }
{ 8 9 }

我想看到的是一系列的序列:

代码语言:javascript
运行
复制
{ { 1 8 } { 1 9 } { 2 8 } { 2 9 } { 3 8 } { 3 9 } }

当我使用cartesian-product单词时,我得到一个序列序列:

代码语言:javascript
运行
复制
{ { { 1 8 } { 1 9 } } { { 2 8 } { 2 9 } } { { 3 8 } { 3 9 } } }

我也尝试过[ 2array ] cartesian-map,但得到的结果是一样的。最后,我尝试了[ 2array ] cartesian-each,但每一对都被单独推送到堆栈上。至少它是扁平的,但我希望它们都在一个数组中。

我该怎么做呢?

EN

回答 2

Stack Overflow用户

发布于 2012-02-21 10:26:44

我不确定是否有现成的库方法可以做到这一点(我刚刚开始),但你可以通过将cartesian-productappendreduce组合在一起来做到这一点:

代码语言:javascript
运行
复制
--- Data stack:
{ "a" "b" "c" }
{ 1 2 3 4 } 
( scratchpad ) cartesian-product { } [ append ] reduce .
{
    { "a" 1 }
    { "a" 2 }
    { "a" 3 }
    { "a" 4 }
    { "b" 1 }
    { "b" 2 }
    { "b" 3 }
    { "b" 4 }
    { "c" 1 }
    { "c" 2 }
    { "c" 3 }
    { "c" 4 }
}
票数 4
EN

Stack Overflow用户

发布于 2013-05-27 20:30:51

使用sequences.extras中的flatten1

代码语言:javascript
运行
复制
IN: scratchpad { 1 2 3 } { 8 9 } cartesian-product flatten1 .
{ { 1 8 } { 1 9 } { 2 8 } { 2 9 } { 3 8 } { 3 9 } }
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9346790

复制
相关文章

相似问题

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