Bazı bölümleri içeren bir çizim paketi yazıyorum ve işleçler ve veri türlerinin dağılması var. Ancak kullanıcıların her seferinde karşılık gelen modülleri eklemelerini istemiyorum, çünkü oldukça dağınık olurdu, örneğin bir Point
sınıf, bir Monoid
rol ve Style
böyle farklı yollarda bir sınıf olurdu
unit module Package::Data::Monoid;
# $?FILE = lib/Package/Data/Monoid.pm6
role Monoid {...}
unit module Package::Data::Point;
# $?FILE = lib/Package/Data/Point.pm6
class Point {...}
unit module Package::Data::Style;
# $?FILE = lib/Package/Data/Style.pm6
class Style {...}
Bu
tür komut dosyaları yazabileceğim etki ile haskell
benzer bir başlangıç yapmak istiyorumlib/Package/Prelude.pm6
use Package::Prelude;
# I can use Point right away, Style etc...
yapmak yerine
use Package::Data::Style;
use Package::Data::Point;
use Package::Data::Monoid;
# I can too use point right away, but for users not knowing the
# inner workings it's too overwhelming
Birçok şey denedim:
- Bu sürüm bana doğru efekti vermiyor, ben işaret etmek için tüm yolu yazmak zorunda, yani,
Package::Data::Point
...
unit module Package::Prelude;
# $?FILE = lib/Package/Prelude.pm6
use Package::Data::Style;
use Package::Data::Point;
use Package::Data::Monoid;
- Bu sürüm bana
Point
hemen veriyor , ancak operatörlerle ilgili sorunlar alıyorum ve bunun gibi, ben de sadece belirtilen örnek paketlerde dışa aktarılan rutinlerden her şeyi otomatik olarak eklemek istiyorum.
# $?FILE = lib/Package/Prelude.pm6
use Package::Data::Style;
use Package::Data::Point;
use Package::Data::Monoid;
sub EXPORT {
hash <Point> => Point
, <Style> => Style
, <mappend> => &mappend
...
}
Böyle bir başlangıç dosyası almanın daha iyi ve hızlı bir yolunu biliyor musunuz?
unit class Package::Data::Point
. Kullanmanıza gerek yokmodule
.