Mailing List Archive: 49091 messages
  • Home
  • Script library
  • AltME Archive
  • Mailing list
  • Articles Index
  • Site search
 

[REBOL] Function Inheritance

From: lmecir::mbox::vol::cz at: 10-Mar-2003 16:09

Hi all, me and Romano are helping Gabriele to do some type definition experiments in Rebol. Gabriele wanted to have a "function inheritance" HOF like SUBFUNC or TSUBFUNC as follows:
>> tinsert: tsubfunc :insert load mold third :insert [print Inserting...
super]
>> head tinsert/only [] []
Inserting... == [[]]
>> head tinsert [] [2]
Inserting... == [2] The only thing needed is to call SUPER without any arguments/refinements and the parent obtains all the arguments and refinements automatically. The sources of the functions are: http://www.rebolforces.com/~ladislav/tfunc.r and http://www.rebolforces.com/~ladislav/subfunc.r If you want to be able to use all argument handling methods (i.e. not just the normally evaluated arguments), you can use FUNCALL5 and PREPARE-AR5 (which support even unevaluated/fetched argument passing methods) instead of FUNCALL and PREPARE-AR, but it will be slower. The same holds for SUBFUNC and TSUBFUNC. TSUBFUNC is more reliable (no problem with error and set-word handling, etc.), but slower. Cheers -L