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

Popular posts from this blog

c++ - OpenCV Error: Assertion failed <scn == 3 ::scn == 4> in unknown function, -

php - render data via PDO::FETCH_FUNC vs loop -

The canvas has been tainted by cross-origin data in chrome only -