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