【发布时间】:2014-07-17 18:16:54
【问题描述】:
我想将原子转换为字符串以检查第一个字母是否为大写字母,但使用 Clisp 函数字符串返回大写字母 si 我无法将其应用于我的原子。
例子:
(setq a 'ljlkj)
(upper-case-p (char (string a) 0)) ----> returns T (and I want nil)
我做错了什么?
提前谢谢你!
【问题讨论】:
-
为什么要检查符号名称中字符的大小写?这似乎是一件非常错误的事情!
-
因为我有一个带有这样列表的程序:(你好,这是一个句子)并且我不想重新组织我的所有代码以拥有这样的列表:(“Hello”“it”“是“一个”“句子”),虽然我可能不得不这样做。
-
在这种情况下,你应该在阅读你的句子之前将
readtable-case设置为:preserve(它们在一个文件中,而不是穿插在你的代码中,对吧?)你也可以在你的代码中引用这些东西与|:(setq a '|Hello|) -
实际上我得到了带有 (read-line) 的句子,所以我唯一的解决方案是重新定义 readtable :preserve 每次我阅读输入并且每次我想知道第一个字母是否是大写字母?
-
我不确定将单词存储为符号是否是个好主意。但是如果你确定你的方法,我会定义我自己的可读变量并在我阅读句子时将
*readtable*绑定到它。