【发布时间】:2014-04-19 05:35:47
【问题描述】:
该程序获取元素重复的列表,例如L = (a a a b b b c c c d),并输出项目列表和重复次数,例如((a 3)(b 3)(c 3) d)
(define counter 0)
(define (compress liste)
(if (or (null? liste) (null? (cdr liste)))
liste
(let ((compressed-cdr (compress (cdr liste))))
(if (equal? (car liste) (car compressed-cdr))
((+ counter 1) compressed-cdr)
((cons (car liste) counter) (= counter 0) (compressed-cdr))))
))
但是,我收到此错误:
错误:应用程序:不是程序;期望一个可以应用于参数的过程
给定:1 个参数 ...
错误在第二个 if 条件的真谓词处。
【问题讨论】:
标签: list recursion scheme let run-length-encoding