scheme相关内容
如果这是一个常见的问题,请原谅。搜索球拍,并将lambda作为参数传入,返回的结果并不多。我正在尝试编写一个球拍函数lsf,该函数接受一个可选的lambda函数,并将其应用于两个大小相同的列表中的相应元素。此lambda默认为加法。 例如,> (lsf '(2 4 5) '(6 7 8) (lambda (a b) (- b a)))应返回列表'(4 3 3) > (lsf '(2 5
..
我希望它提取其中包含字母e的所有单词。 例如。 (ewords '(i e ee o oo)) -> '(e ee) 伯克利的61a讲座使用(First‘Word)提取单词的第一个字符。但当我尝试这样做时,DrSolutions对我尖叫。如何提取单词的第一个字符?Like (first 'word)->'w. 推荐答案 您需要将其显式转换为字符串: (first (
..
我在试拍中的一些练习题,被困在这道题上了 我要做的是定义一个列表,如(Partition‘(1 2 3 4 5 6)3),然后调用Return’((1 2)(3 4)(3 4))。(三个大小相等的分区) 例如,(Partition‘(1 2 3 4)3)将提供输出 (1)(2)(3 4) 其中n为3是要创建的分区数 下面我试过解决这个问题 (define (threesize n
..
我收到以下错误“and::中的语法不正确”: (define test (lambda(list1 a b c d) (cond (null? list1) (and (eqv? a b) (eqv? c d)) (two-subsets (cdr list1) a b c d)))) (test '(1 2 3 4) 0 0 0 0) 本质上,我尝
..
假设我有一个列表,例如:(define a '(+ (* p p) (* x x)))。 如何使用a给出的表达式定义过程,例如: (define (H x p) (+ (* p p) (* x x))))? 我尝试这样做:(define (H x p) (eval a)),但它显示p和x是未定义的。我想,对于apply或类似的东西,有一个简单的解决方法,但我不能理解它。 我想我可以根据传
..
let、let*和letrec有什么区别? 请详细说明并举例说明。 推荐答案 您最好的选择是阅读let、let*和letrec的official R5RS descriptions。 简而言之: (let ((x 2)) (let ((x 3) (y x)) y) => 2 (let ((x 2)) (let* ((x 3) (y x)) y) => 3
..
假设有两个函数f和v,进一步假设v返回一个长度为n的列表,并且f正好需要n个参数。我正在方案中寻找正确的语法,以便将f应用于v返回的列表 如果我使用语法(f (v v-arguments)),则我得到一个错误,即f预期有n个参数,但只收到一个参数(这是v返回的列表)。 如果我使用语法(f . (v v-arguments)),则问题是传递给f的参数太多。 我最多只能这样做(对于f
..
我正在使用Ansys的Fluent程序进行CFD模拟。这个程序允许使用所谓的日志文件对模拟设置进行部分自动化,我才知道这个日志文件是用SCHEM语言编写的。不幸的是,我甚至从来没有听说过方案,我只知道这是一种里斯普方言(我也对此一无所知)。 我正试图通过使用循环自动为我的模拟设置一系列参数来自动执行一些无聊的任务。如果我从Fluent的命令界面运行此命令: (cx-gui-do cx-
..
任务定义:我要做挂在绳子上的南瓜和鱼 使用的术语: What-is-it?==>决定是做鱼还是做南瓜的函数 fish-squared==>使用2个参数制作鱼的函数 南瓜==>制作南瓜的函数,也有2个参数 装饰==>将所有图像追加到一起的函数 HANG-BY-THREAD==>将所有图像挂到一个线程的函数 额外 在本练习中,我必须使用“(如果(奇数?k
..
在方案中定义某些代码时遇到问题。我正在尝试为Scheme/racket中的节点创建一条记录,到目前为止,我的代码如下所示: (define-record-type node (make-node v l r) node? (v tree-value) (l tree-left) (r tree-right)) 但是-当我尝试执行时,收到以下错误: define-re
..
我是Scheme编程的新手,尝试在if条件下定义一个变量。例如,我有: (if (
..
编写一个Scheme过程,该过程接受列表并返回列表中奇数的和。 例如,(sumodd‘(1(2()6)3(5)2))返回9 以下是我的代码 (define (sumodd ls) (cond ((null? ls) 0) ((list? (car ls)) (sumodd (car ls))) ((= (modulo (car ls) 2) 1)) (+ (ca
..
首先,我想澄清一下,我知道有一些与我要问的问题类似的问题,但是我有一个非常具体的输出案例,我正在尝试复制该案例。 我正在尝试创建一个Scheme过程,该过程允许我获取一个集合并生成一个列表,该列表显示该集合的所有可能子集。 例如,如果我调用:(subsets '(a b c )),我应该得到:'((a b c) (b c) (a c) (c) (a b) (b) (a) ())(具体按
..
我试图将邮件从客户端发送到服务器,然后在服务器上打印该邮件。 server.rkt: #lang racket (define the-listener (tcp-listen 9876)) (define-values (in out) (tcp-accept the-listener)) (displayln (read in)) (tcp-close the-listener)
..
我正在尝试查找使用方案中的N对列表可以进行的各种组合。以下是我到目前为止的情况: (define (pair-combinations list-of-pairs) (if (null? list-of-pairs) nil (let ((first (caar list-of-pairs)) (second (cadar list-of-
..
如何设计将两个列表合并为一个列表的函数。 第一个列表的第一个元素将是新列表的第一个元素,第二个列表的第一个元素将是新列表的第二个元素 (a,b,c,d,e,f)(g,h,i)将为(a,g,b,h,c,i,d,e,f,) 推荐答案 您尝试实现的过程称为interleave或merge。因为这看起来像家庭作业,所以我不能给你一个直接的答案,相反,我会给你指明正确的方向;填空: (de
..
在racket中,可以通过执行以下操作从一个函数返回多个值: (define (foo) (values 1 2 3)) 然后我们可以通过执行以下操作来绑定它们 (define-values (one two three) (foo)) 现在one绑定到1、two绑定到2、three绑定到3。 我有一个函数可以返回多个值,但我只对其中的一些值感兴趣。有没有办法在“忽略
..
我有几本关于Scheme的书,其中一些提到了名为let和letrec的内容,但是没有一本书能给出令人信服的示例(我的意思是,我什么时候以及为什么要使用其中一个而不是另一个)。 是否存在这样的情况:letrec/named let确实是比内部定义甚至外部辅助过程更好的替代方案? 推荐答案 您使用哪一个主要取决于风格。 我发现自己不经常使用letrec,只是更喜欢内部定义。我确实经常
..
我正在尝试使用方案读取文件,并将其内容放入列表中。 问题是如何去掉问号、数字,只保留单词。我应该每次都用循环检查吗?如果不是这样,我如何从“read”中获取下一个单词的内容? 我尝试使用此代码解决此问题,但在获得文件结尾之前找不到调用“read”的方法; (define Project (lambda (fileName) (if (null? fileName)
..
我希望获得‘(a,b,c)的第二个值,但我不想使用cadr。 我可以得到正确答案: (car (cdr '(a b c))) 'b 但是当我构建函数时: (define test (lambda (list) (car (cdr (list))))) (test '(a b c)) 我收到以下错误: . . application: not a procedure;
..