use*_*885 3 lisp format comparison common-lisp set-difference
这是我的文件和功能:
List1.txt =>猫狗虎熊
List2.txt =>猫狗虎
这些文件是在winodws xp上进行ANSI编码的.
(defun get-file (filename)
(with-open-file (stream filename)
(loop for line = (read-line stream nil)
while line collect line)))
(defparameter *file1* (get-file "list1.txt"))
(defparameter *file2* (get-file "list2.txt"))
(set-difference *file1* *file2*)
Run Code Online (Sandbox Code Playgroud)
我认为输出只是"熊".然而,它返回("猫","狗","老虎","熊")作为差异.我假设它必须与我一起从文件中读取信息,但我被困在那里.感谢您的时间.
Common Lisp EQL用作默认测试.你想要string-equal或类似.
CL-USER > (set-difference '("cat" "dog" "tiger" "bear")
'("cat" "dog" "tiger")
:test #'string-equal)
->
("bear")
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
116 次 |
| 最近记录: |