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