【入門】Common Lisp その10【質問よろず】
■ このスレッドは過去ログ倉庫に格納されています
0074デフォルトの名無しさん
2013/03/16(土) 14:14:13.11たとえば、パッケージA,Bを別々に定義して、その中でそれぞれクラスA, Bを定義、
そのクラスをパッケージαで使う、とか考えた時に、
;; まずAを定義して
(defpackage :A (:use :cl) (:export :attr-of))
(in-package :A)
(defclass A () ((attr :reader attr-of)))
;; 次にBを定義
(defpackage :B (:use :cl) (:export :attr-of))
(in-package :B)
(defclass B () ((attr :reader attr-of)))
;; αで2つを一緒に使おうとすると、名前が衝突して落ちる
(defpackage :child-alpha (:use :cl :A :B))
A-attr, B-attr, とかいうアクセサはオブジェクト指向的じゃないから嫌だけど、
attr-ofにすると、先にアクセサ用パッケージでシンボルを用意するのもダルい。
いっそパッケージを、アクセサ、クラス、総称関数の3つだけにしたらいいのかね。
お前らはどうやってんの?
■ このスレッドは過去ログ倉庫に格納されています