scheme相关内容

如何生成可以连接到新素数的素数对列表?

我有一个存储在变量 primes-list-split 中的素数列表,这些素数由 number->list 方法以列表格式表示.格式如下:2、3、5、7和11的质数列表为'((2) (3) (5) (7) (1 1)). get-prime-pairs 将此列表作为输入,并尝试找到连接到另一个素数的每个组合.然后它应该在列表表示中的列表中返回这些对.因此,连接到也是素数的 3367 的对 3 ..
发布时间:2021-07-16 19:47:33 其他开发

搜索方案中的嵌套列表以找到一个数字

如何搜索嵌套列表以找到某个数字? 例如列表为: ((1 2) (2 3) (3 4) (3 5) (4 5)) 我正在寻找 1. 预期输出: (1 2) 因为 1 在子列表中 (1 2). 解决方案 首先创建函数来扁平化列表.像这样: >(扁平化 '((8) 4 ((7 4) 5) ((())) (((6))) 7 2 ()))(8 4 7 4 5 6 7 2) 然 ..
发布时间:2021-07-16 19:47:30 其他开发

在 MIT Scheme 的 REPL 中是否有一种快速退出调试器的方法?

假设我尝试在 MIT Scheme 的 REPL 中使用一个未定义的变量: 1 ]=>布拉布拉布拉;未绑定变量:blablabla;要继续,请使用选项编号调用 RESTART:;(重新开始 3) =>指定要使用的值而不是 blablabla.;(重新启动 2) =>将 blablabla 定义为给定值.;(重新启动 1) =>返回读取-评估-打印级别 1.2 错误> 这会自动将我带入调试器.要 ..
发布时间:2021-07-16 19:47:27 其他开发

从给定列表中找到 Collat​​z 序列的最大值

我是方案语法的新手.这是我一直在进行的项目的最后一部分.我能够从给定的 Collat​​z 序列中找到最大值,但是项目的这一部分需要从多个 Collat​​z 序列列表中找到最大长度.例如,给出这个列表:'((1 10) (10 200) (201 210) (900 1000) 输出应该是这样的:'(20 125 89 174)我需要找到数字 1 到 10 之间的最大长度,然后从 10 到 20 ..
发布时间:2021-07-16 19:47:24 其他开发

函数定义中的自引用

在 Y-combinator 的解释中 (https://mvanier.livejournal.com/2897.html), (定义几乎阶乘(λ(f)(λ (n)(如果(= n 0)1(* n (f (- n 1))))))))(定义阶乘A(几乎阶乘阶乘A)) 它说在标准方案中,factorialA 的定义将进入无限循环,但是实现它会出现错误,说 factorial A 未定义. 我 ..
发布时间:2021-07-16 19:47:21 其他开发

在方案中解决八皇后

我开始编写一个函数来查看一个皇后是否从棋盘上的其他位置“安全",棋盘采用 (row col) 和 1-indexed 的形式.这是我迄今为止所拥有的: (define (get-row p) (car p))(定义(get-col p)(cadr p))(定义(等于 p1 p2)(and (= (car p1) (car p2)) (= (cadr p1) (cadr p2))))(定义(安全? ..
发布时间:2021-07-16 19:47:18 其他开发

方案:功能辅助

我是 Scheme 的新手,我正在考虑一种方法来递归地对给定列表中的每个数字进行立方,到目前为止,这就是我所拥有的: (define (cube-it-list lst)(cond [(空?lst)空][其他(缺点(cube-it(第一个lst))(cube-it-list (rest lst)))])) 但是每次我执行程序时都会出现错误,我不确定为什么会有人提供帮助或想出更好更有效的方法来做 ..
发布时间:2021-07-16 19:47:15 其他开发

方案中的递归

我的目标是从这个列表中找到 (A B C D E G) 新列表 (B D G) 但是我的代码不起作用. (define (fun lst)(条件((null?lst) '())((null? (cdr lst) '())(else (cons (cadr lst) (fun lst)))) 我收到(B C D E G).我哪里出错了? 解决方案 您的函数没有做任 ..
发布时间:2021-07-16 19:47:12 其他开发

方案#无效错误

我尝试运行以下方案代码: (定义affiche-gagnant(拉姆达(j1 j2 g1 g2)(开始(显示“Le gagnant est :")(展示(条件((> g1 g2)j1)(( ..
发布时间:2021-07-16 19:47:09 其他开发

寻求对方案评估的澄清

我对 eval 感到困惑.我查看了 eval 规范="nofollow">schemers.org.它说 过程:(eval expression environment-specifier) 它向我表明 environment-specifier 是强制性要求.但是,当我使用两个解释器测试 eval 时 - repl.it 和 Elk Scheme -- 它们都可以在没有 的情况下工作 ..
发布时间:2021-07-16 19:47:06 其他开发

可分功能方案

我正在尝试编写一个函数来确定一个数字是否可以被 2 或 3 整除.根据我在网上阅读的内容,已经有一个 Scheme 谓词可整除?但它对我不起作用.我试过自己写一个,但我不知道如何写一个谓词函数.我能得到什么帮助吗?谢谢! 解决方案 divisible? 谓词可以用 remainder 过程表示,记住:一个数 n 除以 x 的余数为零,则 code>n 可以被 x 整除. (定义(可整除? ..
发布时间:2021-07-16 19:47:03 其他开发

具有有序输出的 Scheme 中的功率集

所以我熟悉使用 Scheme 创建幂集的算法,如下所示: (define (power-set set)(if (null? set) '(())(让 ((power-set-of-rest (power-set (cdr set))))(附加动力设置的休息(map(lambda(subset)(cons(car set)subset))剩余功率设置))))) 因此,对于 (1, 2, 3, ..
发布时间:2021-07-16 19:47:00 其他开发

两个相似定义之间的差异

有什么区别吗 (定义make-point cons) 和 (define (make-point x y)(缺点 x y)) ? 一种比另一种更有效,还是完全等效? 解决方案 这里有几个不同的问题. 正如 Oscar Lopez 指出的,一个是间接引用,一个是包装器.Christophe De Troyer 进行了一些计时 并指出,如果不进行优化,间接调用的时间可能是间 ..
发布时间:2021-07-16 19:46:55 其他开发

带有可能不均匀列表的方案 zip 功能

我知道以前有人问过这个问题,我的解决方案与许多答案相同,但我有一个特殊的测试用例,无法与此问题的通用解决方案一起正常工作. 我像许多其他人一样为 zip 问题找到的解决方案是 (define (zip l1 l2)(map list l1 l2)) ... 用给定的参数很好用,比如 (zip '(a b c) '(1 2 3)) =>((a 1) (b 2) (c 3)) 但我也希望 ..
发布时间:2021-07-16 19:46:52 其他开发

如何对方案中的数字无序列表进行排序

用Scheme 中的值对列表进行排序的正确方法是什么?例如,我有未排序的值: x1, x5, x32 .... xn 或 3, 4, 1, 3, 4, .. 9 首先我想为它们增加数字并按以下顺序显示它们: x1, xn, x2, xn-1 或 1, 6, 2, 5, 3, 4 任何帮助都是有价值的. 解决方案 这与您发布的问题相同 之前,但稍有改动.正如我在答案的评论中告 ..
发布时间:2021-07-16 19:46:49 其他开发

按照模式排序

小伙伴们.你如何根据某种模式对列表进行排序一个例子是对 R、W、B 的列表进行排序,其中 R 首先出现,然后是 W,然后是 B.类似于 (sortf '(W R W B R W B B)) 到 (R R W W W B B B) 非常感谢任何答案. 解决方案 这是 Dutch 的功能版本国旗问题.这是我的两分钱 - 使用具有 O(n log n) 复杂度的 sort 过程: (定义 ..
发布时间:2021-07-16 19:46:45 其他开发

如何从Scheme中的列表中删除非重复元素?

给定一个列表, (define ll '(a a a b c c c d e e e e)) 我想删除所有非重复元素,只留下重复元素的一个副本,即删除后,结果是 (a c e) 我的算法是: 遍历列表,比较当前元素和下一个元素. 如果它们相等,则cons 当前元素与下一个递归调用的列表.例如, (a a b c) 从左向右移动,遇到a和a. (cons a (remove ..
发布时间:2021-07-16 19:46:37 其他开发

方案错误:执行:未绑定符号:“错误"

我在学校学习 Scheme 语言并尝试使用 error 函数来处理极端情况.当我尝试类似问题中的这段代码时,我得到了一个error Error: execute: unbound symbol: "error" [in?] 而不是打印出错误信息. 这是上面链接中的示例代码: (定义在?(拉姆达 (el lst)(如果(或(空?lst)(对?lst))(如果(空?lst)#F(if (equ ..
发布时间:2021-07-16 19:46:21 其他开发

需要 #t 但获得第一个元素(方案)

我想我几乎已经解决了以前的问题:方案中的文件夹但在代码中是一个小麻烦.我需要#t,但我得到第一个元素,false 就可以了.这是我的代码: (定义累积(lambda (list1 pre?)(文件夹(拉姆达(x y)(如果你(if (or (equal? y #t) (pre? x y))X#F)#F))#t列表1)))(accum '(1 2 3 4) 1(应该是#t)(accum '(2 2 ..
发布时间:2021-07-16 19:46:19 其他开发