[EMAIL PROTECTED] writes:

> I solve my problem. I hope in *right* way...
> 
> (defmacro smthing (x)
>    (let ((s (read-from-string (concatenate 'string "print-" x))))
>      `(defun ,s NIL (print ,x))))
> 
> ... still, I don't know how to force INTERN to intern `foo', not `|FOO|' 
> (yes, this is CMUCL-specyfic question -- I can intern `foo' in clisp:
> (progn (setq *print-escape* NIL) (intern "foo")) ==> foo).

The question is not CMUCL-specific, and your solution for clisp is
just an illusion of the right thing:

[9]> (eq (progn (setq *print-escape* NIL) (intern "foo")) 'foo)
NIL
[10]> (eq (progn (setq *print-escape* NIL) (intern "foo")) '|foo|)
T
[11]> (symbol-name (progn (setq *print-escape* NIL) (intern "foo")))
foo
[12]> (symbol-name 'foo)
FOO

*PRINT-ESCAPE* does not affect INTERN, but only output of
results. Symbol names _are_ case-sensitive is CL. By default READ
translates characters in a symbol name to upper case. 

Use what Chris Baker has suggested.

-- 
Regards,
Alexey Dejneka

"Alas, the spheres of truth are less transparent than those of
illusion." -- L.E.J. Brouwer

Reply via email to