【发布时间】:2010-03-25 23:59:06
【问题描述】:
好的,我在课堂上开始学习一门新语言。我们正在学习 Scheme,我不确定如何去做。当我说学习一门新语言时,我的意思是扔了一份家庭作业,并被告知要弄清楚。其中一些让我很难过。
我的第一个问题是:
如果参数是一个包含 n a 后跟 n b 的列表,则编写一个返回 true(布尔常量 #t)的 Scheme 函数。否则为假。
这是我现在拥有的:
(define aequalb
(lambda (list)
(let ((head (car list)) (tail (cdr list)))
(if (= 'a head)
((let ((count (count + 1)))
(let ((newTail (aequalb tail))))
#f
(if (= 'b head)
((let ((count (count - 1)))
(let ((newTail (aequalb tail))))
#f
(if (null? tail)
(if (= count 0)
#t
#f)))))))))))
我知道这是完全错误的,但我一直在努力,所以请放轻松。任何帮助将不胜感激。
【问题讨论】:
-
@Coronatus 你没见过 lisp?
-
@Bryan 不,我不是恐龙……
-
你知道方案吗?我不知道这是否正确,但我看到的所有示例看起来都像这样。
-
方案仍然是加州大学伯克利分校 CS 入门课程的首选语言
-
你有
lambda拼写错误。
标签: scheme