我是新的計劃,我試圖解決一個建議的練習。我感謝你的想法,如何解決它,這是練習:計劃編程練習
編寫一個過程「filteredmap」,採用2個函數,並應用第一個函數時謂詞(也作爲參數傳遞)返回#t並在謂詞產生#f時應用第二個函數。
例子:
> (filteredmap even? (lambda (x) (+ x 1))
(lambda (x) (* x 2))
(list 1 2 3 4 5 6 7 8 9 10))
(2 3 6 5 10 7 14 9 18 11)
> (filteredmap even? (lambda (x) "yes, yes, even!")
(lambda (x) "oh no!")
(list 1 2 3 4 5 6 7 8 9 10))
("oh no!" "yes, yes, even!" "oh no!" "yes, yes, even!" "oh no!" "yes, yes,
even!" "oh no!" "yes, yes, even!" "oh no!" "yes, yes, even!")
任何想法如何實現它?謝謝你的幫助!
'filteredmap p g h = map([x] => p x?g x:h x)'。 –
你真的應該試着自己解決你的功課,然後再問別人爲你做。這不是Stack Overflow的原因,你只是在欺騙自己而不是學習。 –