Am Mittwoch, 23. Mai 2007 04:05 schrieb Patrick R. Michaud: > Here's the perl 6 code: > > my $a = sub { ... }; # $a is a subroutine reference > my $b := $a; > # ...; > $a = 4; # $a is now an Int > > How to do the above in PIR if we can't morph a Sub?
I may be not totally uptodate with the recent implementation changes. But I've repeatedly urged a clear separation between variables and values. Obviously the mixture of these is still the current way to go. Anyway: I'd translate above code to the following pseudocode: .var '$a' = .value '.sub ... ' .var '$b' = .var '$a' .var '$a' = .value '4' There is no need for any morph or such operation. Sometimes the implementation needs an additional indirection though, but there are already a lot of these indirections (think of the pmc_ext or even data pointers in the PMC). All values can be shared and are readonly, well, variables are changing. Thx to listening. leo