i dont understand this code

You have problems, and we're glad to hear them. Explain the problem, what you have tried, and where you got stuck.
Feel free to share a little info on yourself and the course.
Forum rules
Please respect your teacher's guidelines. Homework is a learning tool. If we just post answers, we aren't actually helping. When you post questions, be sure to show what you have tried or what you don't understand.

i dont understand this code

Postby jeltedeproft » Sun Oct 13, 2013 7:16 am

hy everyone, for homework i had to make a faculty function that used multiplication.

so i made this :

(define (fac a)
(if (= a 1)
1
(* a (fac (- a 1)))))

and it works, but the solution gave this :

(define (fac n)
(product (lambda (x) x) 1 (lambda (x) (+ x 1)) n))

and i dont understand what happens here, could someone explain for me?

many thanks, a beginning student
jeltedeproft
 
Posts: 4
Joined: Thu Oct 10, 2013 6:45 am

Re: i dont understand this code

Postby Goheeca » Sun Oct 13, 2013 9:31 am

Obviously the product takes 4 arguments an expression, a lower bound, an incrementor and an upper bound. And it works just like a mathematics big pi notation. In this particular usage the expression is an identity function (it's returning the index), the lower bound is 1, the incrementor is a function incrementing by 1 and finally the upper bound is n.
cl-2dsyntax is my attempt to create a Python-like reader. My mirror of CLHS (and the dark themed version).
User avatar
Goheeca
 
Posts: 205
Joined: Thu May 10, 2012 12:54 pm


Return to Homework

Who is online

Users browsing this forum: No registered users and 1 guest