如何获得常用Lisp中使用的编译器?
虚构示例:
(defun get-compiler ()
(RETURN-COMPILER-NAME))
(defun some-factory ()
(cond ((string= (get-compiler) "SBCL") (some))
((string= (get-compiler) "CMU") (some))
((string= (get-compiler) "MCL") (some))
((string= (get-compiler) "EXCL") (some))))
答案 0 :(得分:5)
您可以使用lisp-implementation-type
(请参阅manual)
CL-USER> (lisp-implementation-type)
"SBCL"
或
CL-USER> (lisp-implementation-type)
"Clozure Common Lisp"
请注意,该函数返回实现的名称,该实现不一定是编译器。一些Common Lisp实现可以包括解释器,编译器,另一种编程语言的翻译器等。
答案 1 :(得分:-1)
我是这样来的:
(defun get-implementation ()
(lisp-implementation-type))
(defun some-factory ()
(let ((name (get-implementation)))
(cond ((string= name "SBCL") name)
((string= name "CMU") name)
((string= name "MCL") name)
((string= name "EXCL") name))))