Joe Cheng wrote: > Perhaps I'm misunderstanding here, please bear with me. Ruby doesn't > have the ability to do this: > > a = "test".length > a() => 4 > Instead, you have to do this: > > a = lambda {"test".length} > a.call() It's the same in Lisp. In your first example, "test".length gets evaluated, and that value is assigned to a: Ruby: a = "test".length a.class #Fixnum a #4 a = lambda {"test".length} a.class #Proc a.call() #4 Lisp: (setf a (length "test")) (a) ;error (type-of a) ;(INTEGER 4 4) a ;4 (setf a (lambda () (length "test"))) (type-of a) ;EVAL:INTERPRETED-FUNCTION (funcall a) ;4