好了,所以我最近發佈關於計劃創建一個遞歸函數,將產生偶函數從下定義的列表被稱爲一個問題:功能方案
(define list0 (list 'j 'k 'l 'm 'n 'o 'j))
(define list1 (list 'a 'b 'c 'd 'e 'f 'g))
(define list2 (list 's 't 'u 'v 'w 'x 'y 'z))
(define list3 (list 'j 'k 'l 'm 'l 'k 'j))
(define list4 (list 'n 'o 'p 'q 'q 'p 'o 'n))
(define list5 '((a b) c (d e d) c (a b))
(define list6 '((h i) (j k) l (m n)))
(define list7 (f (a b) c (d e d) (b a) f))
這對於我的脣上功能我創造了這個遞歸功能:
(define mylist '(1 2 3 4 5 6 7))
(define (evens lst)
(define (do-evens lst odd)
(if (null? lst)
lst
(if odd
(do-evens (cdr lst) #f)
(cons (car lst) (do-evens (cdr lst) #t)))))
(do-evens lst #t))
,但現在我想創建,做這樣一個「oddrev」功能: (oddrev 1日)這應該返回一個新的列表,從1日拍攝的奇數元素形成,但與原來的順序相反。也就是說,如果我鍵入:
(oddrev '(a b c d e f g))
這將/應返回: (GECA)
(oddrev (LIST 's 't 'u 'v 'w 'x 'y 'z))
這將/應返回: (ywus)
(oddrev '((h i) (j k) l (m n)))
這將/應該返回:
(l (h i))
和
(oddrev '())
這將/應該返回一個空列表等
我想知道,如果有人可以告訴我這是如何可能的樣子。我正在努力學習未來參考的方案,我聽說這是一種很酷的編程語言,但是現在我在路上碰到了一些顛簸。任何幫助新人都將不勝感激。謝謝
如果您發現我的回答有幫助,請通過我的回答檢查一下綠色支票,這表示問題已解決。 – jozefg