What's the benefit of using Sharpsign Dot?
Sharpsign Dot will evaluate the next expression at read time. Thus it will act as the reader got fed the result and the other levels of CL don't know this. Macros that rely on literals cannot be made dynamic because of the evaluation rules so s read time macro will circumvent that and make it as the dynamic expression was literal for the other levels than the reader.
The benefit is an extra level of meta programming.
See the difference:
CL-USER 7 > (defvar *answer* 42)
*ANSWER*
CL-USER 8 > '(*answer* #.*answer*)
(*ANSWER* 42)
#.
allows expressions to be evaluated at read-time. The result will be returned from the reader - instead of the original expression.
CL-USER 9 > '(*answer* (* #.*answer* pi) #.(* pi *answer*))
(*ANSWER* (* 42 PI) 131.94689145077132D0)
Note that the value of *answer*
needs to be known at read-time to make this work.