[plt-scheme] Checking to see if a key is present in a hash table

From: Dave Herman (dherman at ccs.neu.edu)
Date: Sun Feb 26 00:28:01 EST 2006

 >> The problem wasn't strictness or anything like that.
 >
 > I don't doubt you, but what I had in mind was  something like this
 >
 > (define x 0)
 > (define (f)
 > (let ((y
 >        (call/cc
 >         (lambda (k)
 >           k 0))))
 >   (set! x 1)))

I think you aren't understanding what Ryan's telling you.

  (lambda (k)
     k 0)

is not the same as

   (lambda (k)
     (k 0))

This has ABSOLUTELY nothing to do with continuations, strictness, or any 
such complicated nonsense. Rather, you are consistently making a very 
simple syntax error.

In Scheme, procedure application MUST begin with an opening parenthesis.

   (lambda (k)
     k 0)

is the same as

   (lambda (k)
     (begin
       k
       0))

which is also equivalent in behavior to

   (lambda (k)
     (begin
       256974
       0))

as well as

   (lambda (k) 0)

Dave


Posted on the users mailing list.