In a message dated Thu, 13 Mar 2003, Luke Palmer writes:
> {
> my Class %valClasses;
>
> sub Val($N) returns Class {
> my Class $rclass = %valClasses{$N} //= class {
> multi *isa ($obj, $rclass $class) { $obj ~~ $N }
> }
> }
> }
>
> multi factorial (Int & Val(0) $g) { 1 }
Isn't this exactly what C<is cached> is for?
sub Val($N) is cached returns Class {
class {
multi *isa ($obj, $rclass $class) { $obj ~~ $N }
}
}
multi factorial (Int & Val(0) $g) { 1 }
(This is ignoring the fact that you can't use a runtime-evaluated sub in a
type declaration so the multi declaration wouldn't actually work.)
--
Trey Harris
Vice President
SAGE -- The System Administrators Guild (www.sage.org)
Opinions above are not necessarily those of SAGE.