我試圖寫一個程序:當一對與啓動時,它會返回b;當一對以b開始時,它會返回c;當一對以c開頭時,它會返回一個。計劃程序來替代元素在對
(define e '((a b) (b c) (c a)))
(define (make-encoder e)
(cond ((eq? 'a (car (assq 'a e)))
(cadr (assq 'a e)))
((eq? 'b (car (assq 'b e)))
(cadr (assq 'b e)))
((eq? 'c (car (assq 'c e)))
(cadr (assq 'c e)))))
返回什麼是隻有「B」,所以我不知道在我的括號內是錯誤的切斷剩餘的代碼?我玩了很久,想知道這是我的問題還是其他問題。
我不清楚你希望程序做什麼。你能舉幾個想要的行爲的例子嗎? –
@BrendanCannell對不起,我最終的目標是要列舉一個例子'(a b a c a b)),並讓它返回(b c b a b c)。所以每一個被b代替,每個b代替c,每個c代替一個。 –
它有時可以幫助大聲朗讀代碼。 「從列表'e'製作編碼器:如果'e'中的'a'的鍵是'a',則在'e'中返回'a'的值;否則,如果'b'的鍵在'e'是'b',...「聽起來不對。 (查找「橡皮鴨調試」。) – molbdnilo