如何计算Scheme中列表中的语句数

如何计算Scheme中列表中的语句数,scheme,racket,Scheme,Racket,语句->如果为布尔,则为语句列表->而布尔语句列表->id=表达式 所以如果输入:id=id+idif bool,那么如果bool,那么id=id+id=const/constid=id+id,而bool id=id-constid=id-id 语句的数量应为9。方案是相同的。无法区分表示方案代码(例如语句)的列表和表示数据的列表,因为方案代码是方案数据。但是,当然可以计算一个列表中包含多少个列表,这可以通过以下函数完成 (define (list-count list) (cond ((n

语句->如果为布尔,则为语句列表->而布尔语句列表->id=表达式

所以如果输入:id=id+idif bool,那么如果bool,那么id=id+id=const/constid=id+id,而bool id=id-constid=id-id


语句的数量应为9。

方案是相同的。无法区分表示方案代码(例如语句)的列表和表示数据的列表,因为方案代码是方案数据。但是,当然可以计算一个列表中包含多少个列表,这可以通过以下函数完成

(define (list-count list)
  (cond ((null? list) 0)
        ((list? (car list))
         (+ (list-count (car list)) 
            (list-count (cdr list))
            1))
        (else (list-count (cdr list)))))
根据您的说明,当给出问题列表时,将返回9

> (list-count '((id = id + id)(if bool then (if bool then ( id = id + id ))(id = const / const)(id = id + id))(while bool (id = id - const)(id = id - id))))
9