代码之家  ›  专栏  ›  技术社区  ›  amirt

在Common Lisp中将函数转换为字符串或符号

  •  4
  • amirt  · 技术社区  · 7 年前

    "+" 或 #:|+| #'+

    2 回复  |  直到 7 年前
        1
  •  8
  •   sds Niraj Rajbhandari    7 年前

    方式是 function-lambda-expression 那是 不 保证归还任何有用的东西。

    (nth-value 2 (function-lambda-expression #'+))
    ==> +
    

    或者,如果你愿意,

    (symbol-name (nth-value 2 (function-lambda-expression #'+)))
    ==> "+"
    
        2
  •  5
  •   Rainer Joswig mmmmmm    7 年前
    CL-USER> (nth-value 2 (function-lambda-expression #'sin))
    SIN
    
        3
  •  0
  •   Soul Clinic    6 年前
    (defun function-name (fn)
      (string-downcase (symbol-name (nth-value 2 (function-lambda-expression fn)))))
    
    (function-name #'atom) => "atom"