递归是在 Racket 方言 sdp(“Schreibe dein Programm”)中编写类似 for 循环的唯一方法吗? 其中“(for)”不是一回事,或者是否有更“有效”或更简单的方法来做到这一点? 在 Racket-sdp 代码中,与 C++ 循环for(i = 0, i < 10 ...
递归是在 Racket 方言 sdp(“Schreibe dein Programm”)中编写类似 for 循环的唯一方法吗? 其中“(for)”不是一回事,或者是否有更“有效”或更简单的方法来做到这一点? 在 Racket-sdp 代码中,与 C++ 循环for(i = 0, i < 10 ...
我是 scheme 的新手,我试图了解以下代码片段如何能够递归地乘以提供的两个数字(这里的 function 堆栈是如何发生的): 我的第一个疑问是 else 部分的哪一部分先执行? 在 else 部分,如果(decrement y)首先执行,则 y 首先减 1,然后(recursive-mult ...
使用 mit-scheme 提供唯一的修改是从(cthen (make-syntactic-closure env '(it) (third exp)))到(cthen (third exp)) 简而言之, make-syntactic-closure有什么区别?(define-syntax ai ...
以下过程会导致无限循环: 我仍在学习 Guile,所以我有点困惑为什么会这样。 ...
朋友给了我这个问题作为我学习 Scheme 的一种方式来解决: E::= (λ VE) | (EE) | V和 V=variable 并编写一个方案 function freeVariables ,它采用自由变量。 例如: 但是,我的代码已完成,如下所示,逻辑已完成。 但这就是我添加输入时发生 ...
我被这个我为了好玩而做的特殊问题所困扰:为什么每次汽车出现时都会导致违反合同? 有没有可能的修复方法? 输入 = (fv '(λ f (λ x (f ((tg) g))))) Output = 汽车:预计违约:一对? 给定:'() Output 应该是: (tg) ...
我有两个r5rs文件 - scheme-interpreter.scm和scheme-interpreter-operations.scm 。 第一个文件包含两个函数—— interpret和evaluate 。 第二个文件包含辅助函数,这些函数在evaluate中被调用。 但是,这些函数也可以调 ...
我正在尝试学习一种 Lisp 语言并选择了 Guile 并试图解决这个问题: 给你一个整数数组coins代表不同面额的硬币和一个整数amount代表总金额。 返回弥补该金额所需的最少数量的硬币。 如果硬币的任何组合都无法弥补该金额,则返回 -1。 你可以假设你有无限数量的每种硬币。 从根本上说,我 ...
这是我一直遇到的问题。 我有一个功能可以做一些有用的事情,但我想要一个也做一些稍微不同的事情的版本。 例如,子字符串搜索查找某个子字符串在另一段较长的文本中出现的所有位置。 然后我发现了一个只需要找到子字符串的第一个实例、最后一个实例或第 n 个实例的用例。 有没有一种惯用的方法可以从更大的通用代码 ...
我正在尝试为立方根实现牛顿法,但我的函数似乎挂起。 我的代码与书中显示的求平方根的代码几乎完全相同,只是对improve函数进行了适当的修改。 这是我的代码...(define (cube-root x) (cube-root-iter 1.0 x)) (define (cube-root- ...
我是新来的计划并坚持这个问题: 输入列表 = (abc) output = (ab c c ba ) 尝试使用 (reverse) 并得到反转列表,但不知道如何使列表成为回文。 ...
这很好用:(sxml-match '(div) ((div) #t)) 但这失败了:(sxml-match '(div) ((,element) #t)) 我想知道如何匹配任何元素? 这是一个更具体的例子。 以下是 XCB 的“ xproto.xml ”文件的片段:(define xp ...
我有以下程序: 在这里,我想创建一个 function sty ,它接收 function,将其应用于列表,然后删除列表的第一个元素。 但是,当我运行它时,出现以下错误: 我了解该错误,但不确定如何将我的 lambda(将生成一个列表)传递给先remove-first ...
我想让这些列表以预期的格式(() () () ())返回,但它最终看起来像((((()))))列表和 append 的哪些组合可以使这项工作有效? 或者 function 中是否有一些额外的内置功能会有帮助? 这是代码: ( p-nums返回一个数字) (p-loop 4 4 '())理想情况 ...
我正在尝试编写一个 R7RS 库,它将以破坏性的方式反转列表, 我目前已经编写了这段代码; 我唯一担心的是我收到的错误。 我的代码是否按我的要求工作? 任何形式的建议表示赞赏! 尝试像我在 R5RS 中那样执行反向程序,只是这次我使用的是破坏性运算符。 ...
我正在编写一个程序/游戏,我使用 Guile 在 C 程序之上编写脚本。 例如,我在 C 中有一个命令结构类型(也用于 move_to)和相应的move_to包装器 function 以在 Guile 中创建 move_to 命令。 在 UI 中,可以输入一行输入,然后在 Guile 中执行。 对于 ...
我正在尝试编写一个随机抽取我同事名字的脚本:#!/usr/bin/env gosh -b (define-module utils (use data.random :only (samples$ integers-between$)) (use gauche.generator :onl ...
我试图按照 Gauche 手册编写一个简单的玩具脚本,但我正在努力使用 Gauche import机制。 这是我的脚本, random-team-member : 但我收到错误ERROR: unknown module data.random 。 据我从文档( 此处和此处)可以看出,这是impor ...
到目前为止,我所拥有的只是检查它是否是 null 列表。 如果是,则它通过空列表。 我想要做的是遍历列表,直到找到最后一个元素。 我想循环列表 cdr,直到 cdr 显示为 null。我理解逻辑但不理解语法。 对于列表 (1 2 3 4),我希望能够看到 4 是最后一个元素。 ...