在Common Lisp中将FUNCTION转换为STRING或SYMBOL

4 symbols function common-lisp

是否有可能在常见的lisp中将函数转换为符号或字符串以供进一步使用?我的意思是得到一个"+"#:|+|#'+.

sds*_*sds 7

唯一的标准方式是 function-lambda-expression保证返回任何有用的东西.

永远不会,CLISP和SBCL都会返回实际的函数名称:

(nth-value 2 (function-lambda-expression #'+))
==> +
Run Code Online (Sandbox Code Playgroud)

或者,如果你愿意,

(symbol-name (nth-value 2 (function-lambda-expression #'+)))
==> "+"
Run Code Online (Sandbox Code Playgroud)


Rai*_*wig 5

CL-USER> (nth-value 2 (function-lambda-expression #'sin))
SIN
Run Code Online (Sandbox Code Playgroud)