>>>>> "TY" == Tonguc Yumruk <[EMAIL PROTECTED]> writes:

    TY> İki çözüm.  İlki bence kirli olabilen bir yöntem...

    TY> (import 'split-sequence :split-sequence)

    TY> Bu o anda içinde bulunduğumuz paketin namespace'ine
    TY> split-sequence fonksiyonunu ekler. Fakat bu anladığım
    TY> kadarıyla bir isim çakışmasına yol açıyor. Neyse ki
    TY> resolve-conflict diye bir restart var ve sembolleri uygun
    TY> bişimde değiştirmenize izin veriyor. 

Evvelce onu bir sembol olarak gormustur de ondan oluyordur bu buyuk 
ihtimalle.  Mesela 

; temiz sbcl
CL-USER> (require 'split-sequence) ;burada split sequence intern oldu
NIL
CL-USER> (unintern 'split-sequence) ;giiit
T
CL-USER> (import 'split-sequence:split-sequence)
T

;yeninden sifir sbcl

CL-USER> (require :split-sequence) ; require "string designator" alir
NIL
CL-USER> (import 'split-sequence:split-sequence)
T

Bunlar REPL icin.  Eger dosyalarda saklayacaksaniz su da var:

;;denenmedi

;; sistemlerin tanimladigi dosya ayri olabilir
(defpackage #:IP-MAYMUNLUGU
   (:nicknames #:IP)
   (:use #:COMMON-LISP)
;;burada split-sequence'in evvelce gorulmus olmasi lazim
   (:import-from  #:split-sequence  #:split-sequence)  
   (:export #:parse-ip))

;;belki baska dosya

(in-package #:IP-MAYMUNLUGU)

(defun parse-ip (ip)
  (mapcar #'parse-integer 
          (split-sequence #\. (symbol-name ip))))

Bu arada eger butun exported sembolleri kullanmak istiyorsaniz 
"use-package" da var.  Hyperpsec filan biliyor bunlari.  Bir iki cok 
packageli sisteme bakarsaniz ne tur tarzlarin mumkun oldugu iyice 
ortaya cikar.   

BM


_______________________________________________
cs-lisp mailing list
cs-lisp@cs.bilgi.edu.tr
http://church.cs.bilgi.edu.tr/lcg
http://cs.bilgi.edu.tr/mailman/listinfo/cs-lisp

Cevap