the doc of 'eval says this: (eval 'any ['cnt]) -> any Evaluates any. Note that because of the standard argument evaluation, any is actually evaluated twice.
If an offset cnt is given, the value of @ in the cnt'th call environment is used during the second evaluation. cnt should be greater than zero. See also run and up. I'm having a hard time understanding what the 'cnt value does. I thought it would use the value of the 'any that is 'cnt positions up, like 'up does, but then this test code does not behave as I expect: (setq A (2 1)) (let A 3 (list A (eval 'A) (eval 'A 2) (up 2 A))) -> (3 3 3 (2 1)) instead of (3 (2 1) (2 1)), which is what I expected. would someone help me understand?