2012-07-05 35 views
5

Bu benim pakete foo gelen sembolleri :bar ve :baz nasıl aktardıkları: Ben ihraç sembollerin listeden :baz kaldırdığınızdaLisp, daha önce dışa aktarılan sembolleri nasıl unutur?

(in-package :cl-user) 
(defpackage foo 
    (:use :cl) 
    (:export :bar :baz)) 
(in-package :foo) 

SBCL şikayet ve derleme başarısız olur. SBCL yaklaşık :baz balçık yenilemeden unutturmak nasıl yapabilir

warning: 
    FOO also exports the following symbols: 
     (FOO:BAZ) 

?

cevap

10

SBCL:

* (apropos "unexport") 

UNEXPORT (fbound) 


* (documentation 'unexport 'function) 

"Makes SYMBOLS no longer exported from PACKAGE." 


* (apropos "unintern") 

UNINTERN (fbound) 


* (documentation 'unintern 'function) 

"Makes SYMBOL no longer present in PACKAGE. If SYMBOL was present then T is 
returned, otherwise NIL. If PACKAGE is SYMBOL's home package, then it is made 
uninterned." 
2

okumak ya da tekrar okumak gerekir bu konularda belgelerin çok şey var. Bu paket/sembol olayı ilk bakışta yeterince önemsizdir, fakat diğer dillerin bazı okumaya değer olduğu kadar farklıdır (yani, diğer dillerden gelen bilgileri yeniden kullanmak, paketler ve semboller söz konusu olduğunda özellikle risklidir).

Dokümanları okuduktan sonra hala sorun yaşarsanız, tekrar okumanızı deneyin (sorun yaşadığınızda edindiğiniz tecrübe ilgili bölümlere odaklanmanıza yardımcı olacaktır; okumalar arasında sorun yaşanmadan tekrar okuma yapmak çok verimli değildir IMHO).

bazı bağlantılar buldum kullanışlı: