【问题标题】:Defining the key of a plist using another defined variable in common lisp使用 common lisp 中另一个定义的变量定义 plist 的键
【发布时间】:2013-06-03 16:54:57
【问题描述】:

在 common lisp 中,我有一个变量 'name' 定义为:

(setq name ':length-1)
 >> :length-1

现在我想使用这个变量创建一个 plist,我希望它看起来像:

(:length-1 10)

有没有办法使用另一个定义的变量来定义 plist 的键?

我尝试了“格式”,但它给了我一个字符串而不是符号:

(list (format nil ":~a" name) 10)

但这给了我:

(":lifting-surface" 10)

【问题讨论】:

    标签: lisp key plist common-lisp


    【解决方案1】:

    应该这样做:

    (list name 10)
    

    但是,如果您在使用format 时得到的是":lifting-surface" 而不是":length-1",那么您必须更改了name 的值。

    【讨论】:

      【解决方案2】:

      看起来您正在尝试从字符串中创建关键字符号,我建议使用 alexandria 库中的 make-keyword 函数,如下所示:

      (defun make-keyword (name)
        "Interns the string designated by NAME in the KEYWORD package."
        (intern (string name) :keyword))
      

      编辑:哦,我看到你不是,但这可能还是有用的。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-04-20
        • 2019-09-29
        • 2011-12-24
        • 2017-05-20
        • 1970-01-01
        • 1970-01-01
        • 2012-07-12
        • 1970-01-01
        相关资源
        最近更新 更多