編寫函數(pick-numbers-simple L)
。Scheme:函數,返回數字列表
L
是一個簡單的列表,其中不包含嵌套的列表。
函數的結果是數字的L
列表。
在結果列表中的號碼的出現順序應該是相同的L
。例如,(pick-numbers-simple (list a b 1 2 c 3 d))
結果應該是(1 2 3)
。
我有很多需要寫的東西,我只是需要一個開始。如果我能得到這個幫助,我可以完成剩下的工作。
編寫函數(pick-numbers-simple L)
。Scheme:函數,返回數字列表
L
是一個簡單的列表,其中不包含嵌套的列表。
函數的結果是數字的L
列表。
在結果列表中的號碼的出現順序應該是相同的L
。例如,(pick-numbers-simple (list a b 1 2 c 3 d))
結果應該是(1 2 3)
。
我有很多需要寫的東西,我只是需要一個開始。如果我能得到這個幫助,我可以完成剩下的工作。
爲了詳細說明@Jerry棺材的答案,因爲這個問題標記爲 「功課」,你可以寫pick-numbers-simple
,如:
(define (pick-numbers-simple xs)
(let loop ((acc (list))
(xs xs))
(cond
((empty? xs)
(reverse acc))
((number? (car xs))
(loop (cons (car xs) acc) (cdr xs)))
(else
(loop acc (cdr xs))))))
或者使用功能filter
:
(define (pick-numbers-simple xs)
(filter number? xs))
例子:
> (pick-numbers-simple (list 666 'foo 13 42 'bar))
(666 13 42)
number?
要告訴你一個特定的項目是否是一個數字。
一旦你的,它應該是相當簡單:返回值是當前項目(當且僅當它是一個數字)組成的列表,其後在該列表的其餘操作相同的功能。
哪一部分「寫在方案中的功能」,你遇到問題的? – 2011-02-01 03:23:03