Sto scrivendo un pacchetto di disegno con alcune parti e ho operatori e tipi di dati sparsi in tutto. Tuttavia, non voglio che gli utenti aggiungano i moduli corrispondenti ogni volta, poiché sarebbe piuttosto disordinato, ad esempio avrei una Point
classe, un Monoid
ruolo e una Style
classe in percorsi diversi come questo
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 {...}
Mi piacerebbe avere un haskell
preludio simile lib/Package/Prelude.pm6
con l'effetto di poter scrivere tali script
use Package::Prelude;
# I can use Point right away, Style etc...
invece di fare
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
Ho provato molte cose:
- Questa versione non mi dà l'effetto giusto, devo digitare l'intero percorso da puntare, cioè
Package::Data::Point
...
unit module Package::Prelude;
# $?FILE = lib/Package/Prelude.pm6
use Package::Data::Style;
use Package::Data::Point;
use Package::Data::Monoid;
- Questa versione mi dà
Point
subito, ma ho problemi con gli operatori e così via, inoltre vorrei solo aggiungere automaticamente tutto dalle routine esportate nei pacchetti di esempio citati.
# $?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
...
}
Conoscete la gente un modo migliore e veloce per ottenere un file simile a un preludio?
unit class Package::Data::Point
. Non è necessario usaremodule
.