scheme - How do you increment with biwascheme? -
has used online ide replit? http://repl.it/languages/scheme
how increment it?
i'm trying encapsulate function sum things based on sicp video 2a.
(define (square ) (* a)) (define (sum term next b) (if (> b) 0 (+ (term a) (sum term (next ) next b)))) (define (sum-int b) (define (identity a) a) (sum identity (+ 1 a) b)) (define (sum-square b) (sum square (+1 ) b)) (sum-square 1 2)
alternate sum-square (not working)
(define (sum-square b) (sum square (+ 1 a) b)) (sum-square 1 2) // getting 2 not function.
working code:
(define (sum-int b) (define (identity a) a) (sum identity (lambda(a)(+ 1 a)) b))
you have pass function next
parameter, this:
(define (identity n) n) (define (sum-int b) (sum identity add1 b)) (define (sum-square b) (sum square add1 b))
in case add1
isn't defined, can write own version:
(define (add1 n) (+ 1 n))
alternatively, can directly pass lambda
:
(define (sum-int b) (sum identity (lambda (n) (+ 1 n)) b)) (define (sum-square b) (sum square (lambda (n) (+ 1 n)) b))
Comments
Post a Comment