You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将字符串映射为对应函数?例:"+"转#'+、"myfunname"转#'myfunname

字符串转函数引用的实现方案

核心思路

要将字符串转换为#'符号形式的函数引用,本质是先把字符串转为对应语言的符号,再获取其关联的函数对象引用。

具体实现(以Common Lisp为例)

  • 对于普通函数名字符串(比如"myfunname"或"+"),可通过以下代码实现转换:
    (defun string-to-function-ref (str)
      (#'(intern str)))
    
    调用示例:
    (string-to-function-ref "myfunname") ; 返回 #'MYFUNNAME
    (string-to-function-ref "+") ; 返回 #'+
    
  • 关键注意点:
    • intern函数默认将字符串转为当前包内的符号,若目标函数在其他包,需指定包名,比如(intern str "CL")可引用Common Lisp标准包的内置函数。
    • 需确保字符串对应的函数已提前定义,否则#'引用会触发未定义符号的错误。

跨语言扩展说明

如果是其他Lisp系语言(比如Scheme),逻辑一致:先将字符串转为符号,再获取函数引用。例如Scheme中可通过(eval (string->symbol "+"))直接获取+函数对象。

内容的提问来源于stack exchange,提问作者SourBitter

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.08 17:15:37