2016-11-06 54 views
0

我正在分配任務,我們必須根據謂詞(甚至?)分割一個列表。 實施例: (過濾SPS甚至 '(1 2 3 4 5 6 7 8 9 10)'()?)有人可以解釋球拍的商店傳球風格嗎?

輸出: (2 4 6 8 10) (1 3 5 7 9)

我無法生成2個單獨的列表。

+0

還有一堆不同的方式來做這個。儘管如此,我並不一定選擇商店傳球作爲最直接的方式。 我敢打賭,這是針對一個班級的,如果我們試圖在沒有更多瞭解班級背景的情況下回答問題,我們將不會以正確的方式指導您。所以:你可以多說一點關於這個問題的要求嗎? –

+0

也可能值得一提的是,商店傳遞式就是這樣一種風格。對於Racket而言,沒有任何特定的存儲通過;你可以用任何語言來做。它只是一種編程風格,而不是在數據結構上執行突變,將內存表示作爲未來函數調用的參數傳遞(並返回它)。 –

回答

0

你可以簡單地過濾兩次:

(define lst '(1 2 3 4 5 6 7 8 9 10)) 

(define odd? (lambda (n) 
       (not (even? n)))) ; in case you don't have odd 

(cons (filter-sps even? lst) 
     (filter-sps odd? lst)) 

遍歷同一個列表兩次是一種浪費,如果列表很長,但是對於你的例子實在是微不足道