Revision 33804

Date:
2008/12/11 19:31:26
Author:
tene
Revision Log:
[rakudo]: Add .assuming on Code objects for currying.
Files:

Legend:

 
Added
 
Removed
 
Modified
  • trunk/languages/perl6/src/classes/Code.pir

     
    127 127 .return ($P0)
    128 128 .end
    129 129
    130 =item assumming()
    131
    132 Returns a curried version of self.
    133
    134 =cut
    135
    136 .sub 'assuming' :method :subid('assuming')
    137 .param pmc args :slurpy
    138 .param pmc named_args :slurpy :named
    139 .local pmc curried
    140 .lex '@args', args
    141 .lex '%args', named_args
    142 .lex '$obj', self
    143 .const 'Sub' curried = 'assuming_helper'
    144 capture_lex curried
    145 .return (curried)
    146 .end
    147
    148 .sub 'assuming_helper' :outer('assuming')
    149 .param pmc args :slurpy
    150 .param pmc named_args :slurpy :named
    151 .local pmc obj, assumed_args, assumed_named_args, result
    152 find_lex obj, '$obj'
    153 find_lex assumed_args, '@args'
    154 find_lex assumed_named_args, '%args'
    155 result = obj(assumed_args :flat, args :flat, assumed_named_args :flat :named, named_args :flat :named)
    156 .return (result)
    157 .end
    158
    130 159 =back
    131 160
    132 161 =cut