Johnny
Johnny

Reputation: 705

How do I print my procedure call in Scheme?

I am trying to convert a C program to Scheme for an assignment I'm working on. The program is supposed to compute the area of a circle given the formal parameter (diameter, in this case). I think I have it figured out but I don't know how to print the actual value to verify it. I've tried just putting in the number into the print call. The way it is now is the method my book used. When I run the program with Dr. Racket I get:

print: undefined; cannot reference undefined identifier

(define pi 3.14159265)
(define test 5)
(define (areac d)
  (lambda (d)
    (* pi (/ d 2) (/ d 2)
       )))

(print (areac test))

Edit: Language is set to R5RS

Upvotes: 1

Views: 1194

Answers (2)

Alexey Stankevich
Alexey Stankevich

Reputation: 126

If you use "define", you don't have to use "lambda", because "define" is just convenient way to give the name to the lambda-procedure. Your code must look like this:

(define pi 3.14159265)
(define test 5)
(define (areac d)
   (* pi (/ d 2) (/ d 2)
        ))

(display (areac test))

Upvotes: 4

Alexey Stankevich
Alexey Stankevich

Reputation: 126

Command for printing data in scgeme is "display". So, just write

(display (areac test))

Upvotes: 0

Related Questions