2011-09-15 85 views
0

比方說,我有名單的方案列表,像這樣:迭代方案

(define a-list (list (list a b) (list c d) (list e f) (list g h) (list i j))) 

我怎麼會去有關定義,將消耗該列表,這樣我可以用另一個函數消費函數列表中的每個字母?

舉例來說,我有另一個功能

(define (smorg a) 
    (...)) 

所以,我怎麼去這樣做smorg一個,smorg B,smorgç...?

+0

我對Scheme非常陌生(並在此遞歸)。到目前爲止,我已經嘗試過bruteforce方法,例如,smorg(第一個(第一個列表),smorg(第二個(第一個列表))等等。我只想以某種方式自動化這個過程 – arkate

回答

2

確保您瞭解什麼是list?,map,carcdr。它們可能有用。

+0

現在,已經在課堂上覆蓋了它,地圖實際上看起來像更優雅的解決方案。 – arkate

6

你正在使用什麼課本?

如果答案是如何設計程序,然後按照設計配方。特別是,你需要一個數據定義;數據定義用於生成一個模板,該模板準確告訴您如何獲得遞歸權。

如果你不使用HtDP,我強烈建議你給它一個閱讀。該書可在線獲取,網址爲:http://www.htdp.org/。然後按照設計配方。特別是,你需要的數據定義等等等等等等

在任何情況下,這裏有一個提示:永遠,永遠使用list功能你掌握遞歸之前。不在你的功能中,甚至不在你的例子中。它會阻礙你。使用consempty構建您的列表。