SICP练习4.5

问题描述 投票:0回答:1

我正在学习SICP并进行编程练习。我对练习4.5有疑问。练习4.5是:

Scheme允许使用cond子句(<test> => <recipient>)的附加语法。如果<test>评估为真值,则评估<recipient>。它的价值必须是一个论证的过程;然后在<test>的值上调用此过程,并将结果作为cond表达式的值返回。例如:

(cond 
  ((assoc 'b '((a 1) (b 2))) => cadr)
  (else false))

如上所示,如果<test>为真,则cond子句的值应为(<recipient> <test>)(即

然后对<recipient>进行评估。它的价值必须是一个论证的过程;然后在<test>的值上调用此过程,并返回结果...

但是当我在互联网上搜索解决方案时,我发现的几乎所有都是(list (extended-cond-recipient first) (extended-cond-test first))。这是一个由<recipient><test>组成的列表,而不是函数调用。我该怎么办?它困扰了我很久......

scheme computer-science sicp
1个回答
© www.soinside.com 2019 - 2024. All rights reserved.