你如何增加biwascheme?
有人用过在线ide吗 你如何增加它 我试图封装一个函数来总结基于sicp视频2a的内容你如何增加biwascheme?,scheme,sicp,Scheme,Sicp,有人用过在线ide吗 你如何增加它 我试图封装一个函数来总结基于sicp视频2a的内容 (define (square a ) (* a a)) (define (sum term a next b) (if (> a b) 0 (+ (term a) (sum term (next a ) next b)))) (define (sum-int a b) (define (identity a) a
(define (square a )
(* a a))
(define (sum term a next b)
(if (> a b)
0
(+ (term a)
(sum term (next a ) next b))))
(define (sum-int a b)
(define (identity a) a)
(sum identity a (+ 1 a) b))
(define (sum-square a b)
(sum square a (+1 ) b))
(sum-square 1 2)
备用平方和(不工作)
工作代码:
(define (sum-int a b)
(define (identity a) a)
(sum identity a (lambda(a)(+ 1 a)) b))
必须将函数作为下一个参数传递,如下所示:
(define (identity n) n)
(define (sum-int a b)
(sum identity a add1 b))
(define (sum-square a b)
(sum square a add1 b))
如果未定义add1
,您可以编写自己的版本:
(define (add1 n)
(+ 1 n))
或者,您可以直接传递lambda
:
(define (sum-int a b)
(sum identity a (lambda (n) (+ 1 n)) b))
(define (sum-square a b)
(sum square a (lambda (n) (+ 1 n)) b))
我还没有完成学习计划,但是如果你想返回一个函数,你不需要lambda
吗?哦,好的!那太好了!
(define (sum-int a b)
(sum identity a (lambda (n) (+ 1 n)) b))
(define (sum-square a b)
(sum square a (lambda (n) (+ 1 n)) b))