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

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

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). Temporary mirrors of aferomentioned: CLHS and a dark version.

Goheeca

Posts: 271
Joined: Thu May 10, 2012 12:54 pm

Return to Homework

Who is online

Users browsing this forum: No registered users and 1 guest