小编Vin*_*ent的帖子

if和cond之间的区别?

我现在正在学习sicp并且做了ex2.23我已经修改了以下代码:

(define (for-each proc items)
   (if (null? items)
       #t
       ((proc (car items))
        (for-each proc (cdr items)))))
Run Code Online (Sandbox Code Playgroud)

但在运行时,会导致错误:程序应用程序:预期程序,给定:#; 参数是:()

我想我知道原因:我以递归方式调用for-each函数,每个调用for-each想要返回值

但是当我修改代码时:

(define (for-each proc items)
  (cond ((null? items) #t)
        (else (proc (car items)) (for-each proc (cdr items)))))
Run Code Online (Sandbox Code Playgroud)

它运行良好.我不明白,为什么?在cond中,是否每次都要求 - 每个都不需要返回值?

我使用DrScheme,并选择语言SICP

我不是母语英语的人,所以如果有一些没有清楚描述的话,请告诉我

scheme sicp

4
推荐指数
1
解决办法
4740
查看次数

标签 统计

scheme ×1

sicp ×1