我试图测试一小部分代码,出于某种原因我有一些错误。这里是代码。这里tab
只是一个返回列表的函数而translate
是另一个函数。如何在方案中调用函数
(define p
(let ((x (car tab)) (y (cadr tab)))
(list translate(x) y)))
我试图测试一小部分代码,出于某种原因我有一些错误。这里是代码。这里tab
只是一个返回列表的函数而translate
是另一个函数。如何在方案中调用函数
(define p
(let ((x (car tab)) (y (cadr tab)))
(list translate(x) y)))
函数调用写为(f args)
其中f
是函数和args
的参数的空间分隔的序列的名称。
所以叫tab
没有参数,你会写(tab)
,并呼吁translate
的说法x
,你会写(translate x)
。
+
是一种常见的方法在流程,如果你评估它会评估的符号,你会得到的程序对象的实现依赖表示:
+ ; ==> <procedure: +> (or something similar)
现在+
仅仅是一个变量,当评估时,评估为一个程序。如何调用它只是用括号suround它:
(+) ; ==> 0
什么情况是,计划看到括号,然后计算第一个参数+
,并成为程序<procedure: +>
。由于它是一个过程,参数以任何顺序被评估,最后过程被应用那些被评估的参数。
如果tab
是程序对象,则不能向其应用car
或cdr
。如果它评估为一对,你可以调用它的结果。同样,如果你想调用translate
的程序x
它需要看起来像(translate x)
。把它放在一起:
(define p
(let* ((tab-result (tab))
(x (car tab-result))
(y (cadr tab-result)))
(list (translate x) y)))
谢谢:)。干杯 –
Thanks !! (这表明我需要休息:)) –