我正在尝试添加列表中的所有奇数元素.
我无法弄清楚出了什么问题.它适用于所有赔率的列表,但如果甚至只有一个偶数,则会导致错误 - 它表示它期望一个数字作为第二个元素,而是传入一个列表,这不应该发生.
我的代码出了什么问题?
(define list-sum-odd
(lambda (list)
(cond
((null? list)
0)
((odd? (car list))
(+ (car list) (list-sum-odd (cdr list))))
(list-sum-odd
(cdr list)))))
Run Code Online (Sandbox Code Playgroud) 所以我只是在球拍中,正在考虑使用键与计算机进行交互,并且通过球拍将键解释为字符串.我正在寻找我的代码的优化,并想知道字符串或符号是否更快操作.
我正在编写一个函数,try-weak-cues用于从大量响应中选择响应.该程序本质上是与用户的对话.
(define try-weak-cues
(lambda (sentence context)
(define helper
(lambda(list-of-pairs)
(define helper2
(lambda(list-of-pairs context)
(cond((null? list-of-pairs)
(cond((null? list-of-pairs) '())
((any-good-fragments?(cue-part(car list-of-pairs))sentence) (helper2(cdr(car list-of-pairs))context))
(else(helper(cdr list-of-pairs)))))))))
(helper *weak-cues*))))
Run Code Online (Sandbox Code Playgroud)
下面是该函数应该从中获取的响应列表:
(define *weak-cues*
'( ( ((who) (whos) (who is))
((first-base)
((thats right) (exactly) (you got it)
(right on) (now youve got it)))
((second-base third-base)
((no whos on first) (whos on first) (first base))) )
( ((what) (whats) (what is))
((first-base third-base)
((hes on second) (i told you whats on second)))
((second-base)
((right) …Run Code Online (Sandbox Code Playgroud) 我是 Scheme 编程的新手,并试图在 if 条件中定义一个 var。例如,我有:
(if (< x y) (define x y) ) ;(GOAL: if x < y, than x=y..)
Run Code Online (Sandbox Code Playgroud)
但我得到了错误:
let: bad syntax (not an identifier and expression for a binding) in:...
Run Code Online (Sandbox Code Playgroud)
任何想法如何解决这个问题,将不胜感激。
ps对不起我的英语
我的任务有点麻烦.我必须创建一个请求列表和元素列表的过程,然后继续将元素添加到每个子列表中的第一个位置.我设法做到了,它看起来像这样:
(define (add-element lst elem)
(foldr cons lst (list elem)))
(define (insert-first lst1 x)
(cond
[(empty? lst1) empty]
[else (local [(define insert (add-element(first lst1) x))]
(cons insert (insert-first (rest lst1) x)))]))
Run Code Online (Sandbox Code Playgroud)
所以,如果你要输入,(insert-first '((a b) (c d))你最终会得到(list (list 'x 'a 'b) (list 'x 'c 'd))
唯一的问题是我需要使用map和编写程序local.后者我认为我已经完成了但我不能为我的生活找到一种方法来使用map.
我在这里开始了一个关于我正在开发的刽子手游戏的问题。
我觉得刽子手部分让人们对我的真实问题和问题感到困惑。我的问题是,我从递归循环中调用了各种定义的函数并得到了不正确的值。当我自己调用这些相同的函数时(不是在递归循环中),它们会按预期工作。我知道这要么是我忽略的东西,要么是我需要解决方法的变量绑定问题。
首先在这里重现问题代码:
(define (recurse a_list a_number)
(cond ((= a_number 0)
(display "Zero Condition.")
)
(else
(display "\n\n")
(display-list a_list ",")
(display "\n")
(display (car a_constant))
(display "\n")
(display "If the above letter is in the list, result should be true\n")
(display (contains? a_list (car a_constant)))
(display "\n")
(display "Enter a letter:")
(recurse (cons (symbol->string (read)) a_list) (- a_number 1))
)
)
)
Run Code Online (Sandbox Code Playgroud)
以下是我在递归循环中使用的定义:
(define (display-list a_list separater)
(if (null? a_list)
(display "")
(begin
(display (car a_list))
(if (null? …Run Code Online (Sandbox Code Playgroud) 我目前正在Scheme中为一个作业编写一个小项目.我没有长时间使用Scheme,所以我对语法不够强.
问题是在if句中使用"和".我有一个日历中的约会列表,但我只想要在一定时间间隔之间的约会.因此,我需要检查开始和结束时间.
我希望实现的内容在C#中看起来像这样:
List<appointment> appointments = new List<appointment>();
foreach (appointment app in calendar) {
if(app.getstart() >= from-time && app.getend() <= to-time) {
appoinments.add(app);
}
}
Run Code Online (Sandbox Code Playgroud)
我目前在Scheme中拥有的是:
(define (time-calendar cal from-time to-time)
(map (lambda (app)(if (> from-time (send 'getstart app)) #t #f))
(send 'getappointments cal)))
Run Code Online (Sandbox Code Playgroud)
采用日历"cal"和时间间隔(从时间到时间)然后我从cal获得约会(app)并迭代它们.对于每个人,我检查时间是否大于"app"的开始时间.相应地返回true或false.这很有效,但我仍然需要考虑约会是否也在"准时"之前结束.这应该是添加另一个条件的简单问题,但我根本无法使其工作.
任何人都可以帮助我检查第二个变量的正确语法吗?我知道关于Racket文档,但我仍然无法解决我的问题.
我尝试更换cond的if句子.
我也尝试了一些"and"部分的变体,与此类似,但无法正确使用语法:
(define (time-calendar cal from-time to-time)
(map (lambda (app)(if (and((> from-time (send 'getstart app))) (< to-time (send 'getend app))) #t #f))
(send 'getappointments cal)))
Run Code Online (Sandbox Code Playgroud) 我知道发生这个 valgrind 错误是因为我试图使用未初始化的东西。下面的代码是导致此错误的代码。它正在做的是尝试读取 Racket 代码并获取每个符号,例如 + 或define。(标记化)我不希望您彻底理解代码,因为还有很多其他代码可以理解它在做什么。但是,如果您能就我在该行收到此错误的原因提出您的想法,我将不胜感激,symbol = strcat(symbol, newsymbol);
char* newsymbol = talloc(sizeof(char)*2);
*newsymbol = charRead;
newsymbol[1] = '\0';
symbol = strcat(symbol, newsymbol);
Run Code Online (Sandbox Code Playgroud) (F nmlfg):n和m是自然数,la数字列表,f和g函数采用数字参数并返回数字.F函数应该返回:
我需要在scheme中编写这个函数.我已经为产品开发了一个函数,但没有为如何执行角色的评估,我尝试使用eval命令但还没有工作
有什么帮助怎么办?
我正在使用 DrRacket 在方案中实现我的代码。我是这门语言的新手,我的作业需要一些帮助。我的老师想让我从控制台调用一个函数,她不希望我用它的名字来调用它。
这是不允许的 => (function-name 'John (X pcf F g K :: 1 4))
而不是使用该符号,我必须不带名称调用我的函数。
这就是她想要的 => ('John (X pcf F g K :: 1 4))
有没有办法定义一个没有名字的函数并调用它?我在互联网上搜索了很多,但找不到解决方案。