包不可知的符号比较

时间:2016-11-28 11:32:35

标签: common-lisp

我有两个包,每个包含相同的符号:

(make-package "package1")
(make-package "package2")
(intern "SYMBOL" (find-package "PACKAGE1"))
(intern "SYMBOL" (find-package "PACKAGE2"))

我想比较一下。我需要能够写出这样的s表达式:

(package-agnostic-eq 'package1::symbol 'package2::symbol) ; => t

这样做最优雅,最简单的方法是什么?

特别是我对内置运算符很感兴趣。以下是我提出的功能:

(defun package-agnostic-eq (sym1 sym2)
  (string= (symbol-name sym1) (symbol-name sym2)))

1 个答案:

答案 0 :(得分:9)

private void Log(string line) { if (!File.Exists("EHWVB.log")) File.Create("EHWVB.log").Close(); StreamWriter writer = new StreamWriter("EHWVB.log", true); writer.WriteLine(DateTime.Now + " : " + line); writer.Close(); } / STRING=string designators作为参数,而不仅仅是字符串。这意味着你也可以用它来比较符号名称。

STRING-EQUAL