方案中的笛卡尔积

2023-11-27

我一直在尝试做一个返回n个集合的笛卡尔积的函数,在DrScheme中,集合以列表的形式给出,我一整天都在做这个,我想要一些指导方针,因为开始。

----稍后编辑-----

这是我想出的解决方案,我确信它不是迄今为止最有效或最简洁的,但我只学习了 3 周的方案,所以请对我放心。


这是一个简洁的实现,它还旨在通过共享组件列表的尾部来最小化内存中结果结构的大小。它使用 SRFI-1。

(define (cartesian-product . lists)
  (fold-right (lambda (xs ys)
                (append-map (lambda (x)
                              (map (lambda (y)
                                     (cons x y))
                                   ys))
                            xs))
              '(())
              lists))
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

方案中的笛卡尔积 的相关文章

  • 大括号 {} 替换 Racket 中的“开始”

    是否可以有一个宏 使用大括号 来表示一个语句块 从而替换 begin 关键字 因此 代替 if condition begin statement1 statement2 statement3 statement4 else stateme
  • 连接字符串:两个字符串列表的“乘法”[重复]

    这个问题在这里已经有答案了 对于字符串列表 将乘法运算定义为连接 l1 aa bb cc l2 11 22 l3 l1 op l2 预期输出 l3 aa11 aa22 bb11 bb22 cc11 cc22 我们可以简单地使用 for l
  • 方案中的多维向量?

    我之前问过一个关于方案中数组的问题 结果它们被称为向量 但在其他方面基本上与您期望的相同 有没有一种简单的方法可以在 PLT 方案中处理多维 arrays 向量 出于我的目的 我想要一个名为make multid vector或者其他的东西
  • 方案中的尾递归幂函数

    我在方案中编写尾递归幂函数时遇到问题 我想使用辅助函数来编写该函数 我知道我需要一个参数来保存累计值 但在那之后我就陷入了困境 我的代码如下 define pow tr a b define pow tr h result if b 0 r
  • 在Racket中将结构递归转化为累积递归

    我有一些代码来查找最大高度并将其替换为关联的名称 身高和姓名有单独的列表 每个列表的长度相同且非空 我可以使用结构递归来解决这个问题 但必须将其更改为累积递归 而且我不确定如何做到这一点 我见过的所有例子都让我困惑 有人能够将代码变成使用累
  • 我在函数的最后一次递归调用中得到“方案应用程序而不是过程”

    所以这是代码 define time prime test n newline display n start prime test n runtime define start prime test n start time if pri
  • 为什么《小阴谋家》中的所有 lambda 表达式都是如此?

    在从 SICP 学习了一些计划之后 我开始阅读 小计划 我觉得这本书很有趣 并且已经完成了大约四分之一 我注意到我可以在不使用 lambda 的情况下编写许多 大多数 全部 解决方案 而 The Little Scheduleralways
  • 返回列表的前 n 个

    如何返回第一个n列表的元素 这是我所拥有的 define returns lambda list n cond null list 0 n n 1 car list cons car list returns cdr list n else
  • Scheme (Lisp) 中树的深度反转

    我对Scheme中的基本树数据结构进行了深度逆向 define deep reverse t cond null t not pair t t else cons deep reverse cdr t deep reverse car t
  • 如何使用 DrRacket 遵循 SimplyScheme 书籍

    我希望能够操纵句子 以便我可以将它们作为输入并根据单个字母等内容返回输出 例如 ends e 命令将返回所有以 e 结尾的单词 ends e only the good die young gt the die 不幸的是 e 是一个字符串
  • Scheme 和 Common Lisp 之间的实际区别是什么? (或任何其他两种 Lisp 方言)

    注意 我并不是在问学哪个 哪个更好或者诸如此类的问题 我选择了 SICP 的免费版本 因为我觉得它读起来很好 我听说过有关它的好东西 并且我对编程的这一方面很感兴趣 我知道Scheme 是Lisp 的一种方言 我想知道 Scheme 和Co
  • 如何向现有 (OS X) 可执行文件添加节?

    有什么方法可以将部分添加到已链接的可执行文件中吗 我正在尝试基于以下代码对 OS X 可执行文件进行代码签名苹果说明 http developer apple com library mac documentation Security C
  • 如何在 Visual Studio Code 上运行 Scheme?

    我想知道如何在 Visual Studio Code 上运行简单的方案代码 我已经安装了一个名为 Scheme 的扩展 但下一步是什么 我没有找到有关如何运行代码或开发人员联系方式的扩展的任何详细信息 现在在 VSCode 上编译Schem
  • “映射”是否一定会产生额外的嵌套级别?

    是否使用嵌套map自动创建另一层嵌套 这是我使用的一个基本示例 One level map lambda x1 Hi 1 Two levels map lambda x1 map lambda x2 Hi 1 1 Three levels
  • 最好的Scheme解释器或编译器是什么? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 连续传递风格的中间值和返回值

    我来自 OOP 非功能性背景 因此我无法完全可视化有关以下方面的几个在线示例连续传递 https en wikipedia org wiki Continuation passing style 另外 像Scheme这样的函数式语言不必指定
  • 使用连续传递风格通过广度优先索引获取子树

    这个问题是后续问题如何通过索引获取子树 https stackoverflow com questions 65000785 how do i get a subtree by index 这个问题涉及深度优先索引 为此我提供了深度优先连续
  • 程序解释期间高效的增量哈希计算

    我想写一个递归记忆Scheme解释器 在求值过程中的任何时刻 解释器都应该能够检测到它何时接收到之前见过的一对表达式和环境作为参数 简单记忆eval and apply效率低下 每次调用时都需要在哈希表中查找参数eval apply 这需要
  • 为什么“let”不能用于命名内部递归过程?

    考虑计算阶乘函数的以下实现 1 define fac tail lambda n define fac tail helper lambda n ac if 0 n ac fac tail helper n 1 n ac fac tail
  • 在 Racket 中设置默认参数值

    是否可以为 Racket 中的某些参数设置默认值 就像 Python 中这样 def f arg 0 是的 看一眼 声明可选参数 http docs racket lang org guide lambda html 28part Decl

随机推荐

  • SparkSQL注册表时MissingRequirementError

    我是 Scala 和 Apache Spark 的新手 我正在尝试使用 Spark SQL 克隆后repo我通过输入启动了 Spark shellbin spark shell并运行以下命令 val sqlContext new org a
  • C free() 例程和递增数组指针

    会不会free 如果我动态分配一个数组 然后传递一个指向数组中间的指针 而不是初始指针 那么常规工作会怎样 例子 int array malloc 10 sizeof array if array array 5 adjusting the
  • 使用 Spring Boot 应用程序启用 HTTP 严格传输安全 (HSTS)

    我已经关注了这篇文章https docs spring io spring security site docs 4 0 2 RELEASE reference html headers html headers hsts在我的 Sprin
  • JavaScript location.reload() 正在丢失发布数据

    我正在尝试使用java脚本重新加载页面 页面重新加载 但页面中的帖子数据未加载 帖子数据被删除 而页面重新加载任何人都可以帮助我 function currencychange xxx setTimeout delay 2000 funct
  • 在 Paul Graham 的 ANSI Common Lisp 中编写示例

    谁能解释一下 Paul Graham 的 ANSI Common Lisp 第 110 页中的示例吗 该示例尝试解释使用 rest 和 lambda 来创建函数式编程工具 其中之一是组成函数参数的函数 我找不到任何解释它是如何工作的 代码如
  • 确定操作栏是否拆分

    我有一个MapView带有由 ActionBarSherlock 提供支持的操作栏 操作栏既可以分割 在 窄 屏幕上 也可以覆盖 半透明 android windowActionBarOverlay 为 true 或多或少类似于谷歌地图应用
  • 执行 gem 时...(ArgumentError)未知编码名称 - CP720 [重复]

    这个问题在这里已经有答案了 我现在遇到了这个奇怪的错误 while executing gem ArgumentError unknown encoding name CP720 当我想运行任何 gem 命令时 例如 gem install
  • Location.getTime() 始终返回不带毫秒的时间戳

    我正在跟踪 GPS 位置LocationManager requestLocationUpdates using LocationManager GPS PROVIDER并注册一个LocationListener 我的问题 所有测试的设备
  • Qt 找出 QSpinBox 是否被用户更改

    假设我有一个QSpinBox 我如何查明该值是否是由用户或其他函数手动更改的 编辑 我只想在用户更改值时执行一些操作 但如果您的程序执行此操作 setValue 我不想执行此操作 可能的解决方案 ui gt spinBox gt block
  • AngularJS ui-router:测试 ui-sref

    我正在尝试测试一些正在使用的视图 a link a 链接到我的应用程序中的其他州 在我的测试中 我触发了对此元素的点击 如下所示 element find a click 如果状态切换到 我该如何测试someState 使用时会很容易 st
  • 如何轻松地从 lambda 函数创建比较器?

    我想知道 Net 框架中是否提供了一个实现 IComparer 的类 并且可以从 lambda 函数构造该类 能够做到这一点将会很有用 void SortByLength List
  • 使用 NavigationController 在当前 tabBarController 上呈现视图控制器

    当呈现或关闭 VC 时 我不想继续隐藏和显示 tabBar 因为它会造成糟糕的用户体验 相反 我想直接在选项卡栏上呈现下一个 VC 这样当我通过从左向右缓慢拖动来关闭下一个 VC 时 我可以看到隐藏在视图后面的选项卡栏 如下图所示 请注意
  • 实现循环 UITableView

    实现循环 UITableView 的最佳方法是什么 当用户向上滚动到表格边界时 它不是显示空白 而是简单地循环环绕 这里的示例可能是选择星期几 一天 24 小时中的某个小时 或者全球范围内按顺序排序的时区 有一些如何解决这个问题的想法 可以
  • Spring Security 3-如何自定义用户名/密码参数?

    使用时如何自定义 UsernamePasswordAuthenticationFilter usernameParameter j username 和 passwordParameter j password 属性
  • java中的动态代理soap web服务客户端?

    有没有办法使用soap rpc Web服务 以便通过共享接口生成客户端 Restful Web 服务就是这样做的 但是基于肥皂的呢 您是否总是必须使用 Axis 或 CXF 等工具来生成存根和代理 或者是否有可以动态设置它的工具 Thank
  • 像关系数据库一样使用 Lucene

    我只是想知道我们是否可以在 lucene 中实现一些 RDBMS 功能 例子 1 我有 10 000 个项目文档 pdf 文件 必须对其内容进行索引 以便可供搜索 2 每个文档都与一个项目相关 项目可以包含项目名称 编号 开始日期 结束日期
  • 如何从ajax数据发送将pdf上传到服务器(使用jsPDF)

    我正在使用 jsPDF 在客户端生成 pdf 使用函数 doc save filename pdf 我可以下载它 现在我需要将其保存在服务器上 因此我使用 ajax 发送 pdf 数据并使用 PHP 脚本接收它 但生成的 pdfURL 上的
  • 在 #include 语句中使用垃圾字符时不会出现编译器错误

    include
  • 如何防止 EF Core 3.1 中的列更新?

    我从 Net Core 2 2 升级到 3 1 此功能已被弃用 modelBuilder Entity
  • 方案中的笛卡尔积

    我一直在尝试做一个返回n个集合的笛卡尔积的函数 在DrScheme中 集合以列表的形式给出 我一整天都在做这个 我想要一些指导方针 因为开始 稍后编辑 这是我想出的解决方案 我确信它不是迄今为止最有效或最简洁的 但我只学习了 3 周的方案