Scheme 方案说明
我正在读一本编程语言书,书中要求我解释以下Scheme函数的功能(不确定,有人能帮我解释一下):Scheme 方案说明,scheme,Scheme,我正在读一本编程语言书,书中要求我解释以下Scheme函数的功能(不确定,有人能帮我解释一下): 它计算嵌套列表结构中的叶节点数,忽略#f。它使用递归过程: 如果输入为空列表,则这是返回0的基本情况 如果输入是一对car不是列表的配对: 如果car是#f,我们在cdr上递归并返回该值 否则,我们将car计算为1,并将其添加到cdr上的递归结果中 最后,我们对car和cdr进行递归,并将它们相加 它计算嵌套列表结构中的叶节点数,忽略#f。它使用递归过程: 如果输入为空列表,则这是返回0的基
它计算嵌套列表结构中的叶节点数,忽略
#f
。它使用递归过程:
- 如果输入为空列表,则这是返回0的基本情况
- 如果输入是一对
不是列表的配对:car
- 如果
是car
,我们在#f
上递归并返回该值cdr
- 否则,我们将
计算为1,并将其添加到car
上的递归结果中cdr
- 如果
- 最后,我们对
和car
进行递归,并将它们相加cdr
#f
。它使用递归过程:
- 如果输入为空列表,则这是返回0的基本情况
- 如果输入是一对
不是列表的配对:car
- 如果
是car
,我们在#f
上递归并返回该值cdr
- 否则,我们将
计算为1,并将其添加到car
上的递归结果中cdr
- 如果
- 最后,我们对
和car
进行递归,并将它们相加cdr
(define (x lis)
(cond ((null? lis) 0)
((not (list? (car lis)))
(cond
((eq? (car lis) #f) (x (cdr lis)))
(else (+ 1 (x (cdr lis))))))
(else (+ (x (car lis)) (x (cdr lis))))))