I wrote a a program that calculates the volume of cylinders using named functions and un-named functions, however, i'm having trouble doing the same using the let-form in scheme.

here's my program although it doesn't work

(define main6(lambda ()
              (let (
                     (volumec6 (lambda (d h)
                                 (let ( pi (3.14159265))
                                 (* h(* (* (/ d 2)(/ d 2)) 3.14)))
                                 )
                               )
                     )
                )
               )
  )

it gives me this error
let: bad syntax in: (let ((volumec6 (lambda (d h) (let (pi (3.14159265)) (* h (* (* (/ d 2) (/ d 2)) 3.14)))))))

It looks as though you're trying to write a function that returns a function, which I'm sure is not what you intended. Also, the LET form takes either an atom or a two-element list of atoms. What's the matter with just:

(define (volumec6 d h)
  (let ((pi 3.14159265))
    (* h pi (* (/ d 2) (/ d 2)))))
Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.