-5

statement -> if bool then statement_list -> while bool statement_list -> id = 表达式

所以如果输入:((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。

4

1 回答 1

3

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

(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
于 2012-11-27T23:50:09.733 回答