我試圖使用方案編寫一個函數f
,需要一個號碼n
和功能g
並返回長度n
的名單列表,但根據布爾根據圖案由g
指示。例如,函數f
應該取n 3和函數g
,它使列表中的每個第三項都成立。它應該返回此:功能
(list (list true true false)
(list true true false)
(list true true false))
我不知道從哪裏開始的這一點,所以任何幫助或建議將不勝感激。謝謝!
我試圖使用方案編寫一個函數f
,需要一個號碼n
和功能g
並返回長度n
的名單列表,但根據布爾根據圖案由g
指示。例如,函數f
應該取n 3和函數g
,它使列表中的每個第三項都成立。它應該返回此:功能
(list (list true true false)
(list true true false)
(list true true false))
我不知道從哪裏開始的這一點,所以任何幫助或建議將不勝感激。謝謝!
這個關鍵看起來像使用map
。
總之,map
接受函數和列表,並將函數應用於該列表,返回修改後的列表。
要做到這一點,正如我假設你不想要直接解決方案,我首先要構建你的列表清單(只需使用累加器 - 倒計時 - 只要需要就製作清單,並使用cons
和list
和quote
其他一切
然後簡單地套用地圖(大概兩次,這取決於你如何實現您的解決方案),以列表的列表(例如列表l
和功能fn
:。(map fn (car l))
與復發cdr
的l
和cons
的結果一起)
祝你好運!希望這可以幫助!
我不太關注你正在嘗試做什麼,但除了map
,你可能會發現build-list
是有用的。 build-list
需要一個數字和一個過程,從0到該數字的範圍小於1,並將您的過程映射到該範圍。例如
> (build-list 5 (lambda (x) (* x x)))
(0 1 4 9 16)
該問題是不明確的和不明確的。假設所需的功能是(f n g)。 g採取什麼論據?是長度爲n的'(f n g)'還是長度爲n的'(f n g)'的元素,還是所有長度爲n的列表? – outis 2009-12-10 06:39:10