我對方案很陌生,我想將列表(例如(1 2 3 4))發送給一個將返回的函數(4 1 2 3)。第二次運行將返回(3 4 1 2)等等,每次調用該函數時創建一個右移列表。將列表的第一個元素遞歸追加到列表的其餘部分
我想出解決這個問題的第一種方法是遞歸交換列表的第一個和最後一個值。因此,在方案中,我會將列表的汽車追加到列表的cdr中,並遞歸地將列表的cdr發送回我的函數,直到只有最後一次交換爲止。
但是,我不擅長創建遞歸函數,而且我很難用一種新語言來完成,比如計劃。這是我迄今爲止試圖給出我想要去哪裏的想法。
(define (rShift lst)
(if (null? lst)
'()
(append (cdr lst (car lst))(rShift (cdr lst)))))
你沒有測試的代碼。那'(cdr lst(car lst))'部分甚至不會編譯。 –