从向量中删除字符串

Zaka Elab

我试图这样从向量中删除一个字符串:

CL-USER> (defparameter *x*(vector 1 "ab" 3))
*X*                                   
CL-USER> (remove "ab" *x*)
#(1 "ab" 3)                                                                                              

我想#(1 3)作为上一次操作的结果。

谁能解释我怎么办才能获得预期的结果?

我正在使用SBCL + Slime + Emacs + Ubuntu 14.04。

编辑

我想我找到了答案,是因为默认比较功能是EQL,而字符串比较应使用string =函数执行。

仍然存在一个问题,因为您不能将string =用于数字。也许可以通过一个新函数来比较每个变量的类型,具体取决于变量的类型。

约书亚·泰勒(Joshua Taylor)

仍然存在一个问题,因为您不能将string =用于数字。也许可以通过一个新函数来比较每个变量的类型,具体取决于变量的类型。

首先,请注意,您不是在比较变量,而是在比较调用函数之前先评估函数参数您可以执行(string =(aref some-strings 3)(make-string…))并比较两个字符串,但是(据我们所知)都不是变量的值。我强调这一点仅仅是因为您不能在Common Lisp中基于变量的类型来比较它,因为变量没有类型。具有类型。

不管怎么说,这是一个问题。Common Lisp包含执行您要寻找的功能。您可以使用equalequalp,它将下降到字符串中,但不会抱怨比较不同类型的对象:

CL-USER> (remove "ab" #(1 "ab" 3))
#(1 "ab" 3)
CL-USER> (remove "ab" #(1 "ab" 3) :test 'equal)
#(1 3)
CL-USER> (remove "ab" #(1 "ab" 3) :test 'equalp)
#(1 3)

Equalp将不区分大小写地进行比较:

CL-USER> (remove "aB" #(1 "ab" 3) :test 'equal)
#(1 "ab" 3)
CL-USER> (remove "aB" #(1 "ab" 3) :test 'equalp)
#(1 3)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

从向量中删除字符串

来自分类Dev

从字符串中删除字符向量中的单词

来自分类Dev

从子字符串的字符串向量中删除字符串

来自分类Dev

从df中删除包含相同字符串的字符向量

来自分类Dev

从向量中删除和添加字符串

来自分类Dev

在字符串向量中删除带有空字符“”的元素

来自分类Dev

C ++基于子字符串的部分匹配,将字符串作为向量中的重复项删除

来自分类Dev

从字符串中删除ÿþ

来自分类Dev

从字符串中删除

来自分类Dev

从字符串中删除

来自分类Dev

从字符串中删除[]

来自分类Dev

从字符串中删除\“

来自分类Dev

从字符串中删除<>

来自分类Dev

删除数据框中任何向量中包含字符串的行

来自分类Dev

在R中跨单个向量的多个字符串中删除重复的单词

来自分类Dev

从向量中的值中删除可变数量的前导字符串

来自分类Dev

字符串向量中的野牛输入

来自分类Dev

如何计算向量中的字符串?

来自分类Dev

在python中乘以字符串向量

来自分类Dev

解码R中的字符串向量

来自分类Dev

向量中的字符串相等

来自分类Dev

替换字符串向量中的字母

来自分类Dev

测试字符串向量中的 int

来自分类Dev

在向量中组合字符串

来自分类Dev

删除(或取反选择)由dplyr中的字符串向量表示的多个变量

来自分类Dev

将字符串向量中的字符串放入主字符串

来自分类Dev

从字符串中删除特定的字符

来自分类Dev

从字符串中删除特殊字符

来自分类Dev

(迅速)从字符串中删除“ \”字符?