問題
計算列表中出現的次數,它們必須相鄰。例如:(a a b b c c a e)
,返回 ((a 2) (b 2) (c 2) (a 1) (e 1))
。如何在Scheme中使用多個語句循環?
我試過,
(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
循環像這裏面的多條語句?
謝謝,
-1我的眼睛!護目鏡什麼都不做! – 2011-04-22 06:33:26
@Chris Jester-Young:我不明白嗎? – Chan 2011-04-22 06:34:53
你想做什麼?這看起來不像Schemer會或者應該想要編寫的任何代碼。 – 2011-04-22 06:36:37