Common Lisp程序化关键字

nat*_*han 25 common-lisp

Common Lisp中是否有一个函数将字符串作为参数并返回一个关键字?

示例:(keyword "foo")- >:foo

Les*_*zer 38

在大致正确的情况下给出的答案不能为问题的例子提供正确的解决方案.

考虑:

CL-USER(4): (intern "foo" :keyword)

:|foo|
NIL
CL-USER(5): (eq * :foo)

NIL
Run Code Online (Sandbox Code Playgroud)

通常你想在实习之前将STRING-UPCASE应用于字符串,因此:

(defun make-keyword (name) (values (intern (string-upcase name) "KEYWORD")))
Run Code Online (Sandbox Code Playgroud)

  • 当然,OP可能只是将打印机设置为":downcase"...... (2认同)

Chr*_*ung 33

这是一个make-keyword打包关键字创建过程(intern将名称输入KEYWORD包)的功能.:-)

(defun make-keyword (name) (values (intern name "KEYWORD")))
Run Code Online (Sandbox Code Playgroud)

  • @Vatine [11.1.2.3.1在KEYWORD包中实习符号](http://www.lispworks.com/documentation/HyperSpec/Body/11_abca.htm)说(强调添加),*"KEYWORD包被处理与其他包不同的是,当符号被插入其中时采取特殊操作.特别是,当在KEYWORD包中实现符号时,它自动成为外部符号,**自动变为常量变量本身就是一个值.**"* (12认同)