Проблема
Подсчитать число вхождений в списке, они должны быть смежными.Пример: (a a b b c c a e)
, возвращает ( (a 2) (b 2) (c 2) (a 1) (e 1) )
.
Я пытался,
(define (loop lst)
(let ((i 1) (j 0))
(do ()
[(> j (- (length lst) 2))]
(if (eq? (car lst) (cadr lst))
(set! i (+ i 1))
(display i)
)
(
(set! lst (cdr lst))
(set! j (+ j 1))
)
)
)
)
Во время работы DrScheme жаловался
procedure application: expected procedure, given: #<void>; arguments were: #<void>
Как использовать несколько операторов внутриif
или do
петля, как это?
Спасибо,