【发布时间】:2012-03-04 08:43:19
【问题描述】:
定义一个函数sum,它接受两个数字或两个实函数,并返回它们的sum。例如
(sum 1 2) => 3
((sum cos exp) 0) => 2
我得到两个数字之和的代码如下:
(define sum (lambda (x y)
(+ x y)))
但是这两个实际函数的代码是什么...?我该怎么做?有人可以帮忙吗?
还有我该怎么做:
定义一个函数
sum-all,其工作方式类似于sum,但适用于数字列表或函数列表。假设列表至少包含一个元素。 例如(sum-all (list 1 2 3)) => 6 ((sum-all (list cos sin exp)) 0) => 2
注意:这不是家庭作业……我正在经历一个期中考试。
【问题讨论】:
-
我试过的函数贴在上面:(define sum(lambda (x y) (+ x y)))
-
对于
((sum cos exp) 0)工作sum需要(lambda (f g) (lambda (v) (+ (f v) (g v))))将其与另一个求和函数(lambda (a b) (+ a b))结合起来,您需要查看参数的类型并决定什么与他们做。 -
(define sum (lambda (x y) (+ x y)))几乎等同于(define sum +)。
标签: sum scheme overloading