我是新的计划,我试图解决一个建议的练习。我感谢你的想法,如何解决它,这是练习:计划编程练习
编写一个过程“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的原因,你只是在欺骗自己而不是学习。 –