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.