Scheme 标识错误后的多个表达式

Scheme 标识错误后的多个表达式,scheme,Scheme,代码如下: (define path (lambda lst start end) (let ((nodes (car lst)) (edges (cdr lst))))) 为什么这会导致错误 您误用了lambda关键字,函数体不完整 (define path (lambda (lst start end) (let ((nodes (car lst)) (edges (cdr lst))) ; here should b

代码如下:

(define path (lambda lst start end)
  (let ((nodes (car lst))
        (edges (cdr lst)))))

为什么这会导致错误

您误用了
lambda
关键字,函数体不完整

(define path (lambda (lst start end)
      (let ((nodes (car lst))
            (edges (cdr lst)))
        ; here should be expression, i think with lst, nodes and edges

)))
注意:当你说“谁能帮我解决这个错误”时,请包括你看到的错误信息。你的整个程序本身不可能是个错误。但它可能包含错误,当您尝试运行它时,它可能会生成错误消息

我假设您看到了错误消息。下次也包括这些。同时告诉我们你希望看到什么。你期望得到你看到的错误吗

您应该包含实际错误消息的原因是,您看到的问题甚至可能与您认为的问题无关。在这种情况下,错误消息允许我们确保在解决您的问题时走在正确的轨道上


看看你的程序,我认为它在语法上是不完整的。A至少需要有一个
主体
,否则根据语言规则,它是不符合语法的。以下区域没有尸体:

 (let ((nodes (car lst))
       (edges (cdr lst)))
    )
(如果尝试使用
if
语句,但不包括测试,则会出现类似于C语言的错误消息。)

至少,您可以包含某种占位符,直到您确定您真正需要在其中放置什么。例如:

 (let ((nodes (car lst))
       (edges (cdr lst)))
   "fixme")

应至少使程序在语法上可接受。虽然它还没什么用处。

我怎么简单地说nodes=car lst。你是这么说的;在
let
(paul在其中添加注释)的主体中,
节点将绑定到表达式
(car lst)
的结果。如果希望
path
返回该值,则需要对其进行评估。