当前位置:  开发笔记 > 编程语言 > 正文

Common Lisp程序化关键字

如何解决《CommonLisp程序化关键字》经验,为你挑选了2个好方法。

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

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



1> Leslie P. Po..:

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

考虑:

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

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

NIL

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

(defun make-keyword (name) (values (intern (string-upcase name) "KEYWORD")))


当然,OP可能只是将打印机设置为":downcase"......

2> Chris Jester..:

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

(defun make-keyword (name) (values (intern name "KEYWORD")))


@Vatine [11.1.2.3.1在KEYWORD包中实习符号](http://www.lispworks.com/documentation/HyperSpec/Body/11_abca.htm)说(强调添加),*"KEYWORD包被处理与其他包不同的是,当符号被插入其中时采取特殊操作.特别是,当在KEYWORD包中实现符号时,它自动成为外部符号,**自动变为常量变量本身就是一个值.**"*
推荐阅读
Gbom2402851125
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有