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

[REBOL] returning an object from a function, sort of Re:(2)

From: zoon:stumpworld at: 17-Aug-2000 16:53

[rebol--techscribe--com] wrote:
> Hi Pete, > > To be able to pass a word to your function and have the word set to the > object created in the function requires two changes to your code:
I could also do it like: logo-factory: func [ [ "Creates and returns a named logo object." [ 'name [word!] "The name of the object to be created." [ ][ [ set name make object! [ [ type: "text" [ text: "" [ pict: #{} [ file: "" [ altt: "" [ switch-type: func [ [ "Toggles the logo object's type between 'text' and 'pict'." [ ][ [ type: either type = "text" ["pict"]["text"] [ ] [ ] [ ] example use:
>> logo-factory Logo1 >> logo-factory Logo2 >> probe Logo1
make object! [ type: "text" text: "" pict: #{} file: "" altt: "" switch-type: func [ {Toggles the logo object's type between 'text' and 'pict'.} ][ type: either type = "text" ["pict"] ["text"] ] ]
>> Logo1/text: "Emporium of Liquid Fun"
== "Emporium of Liquid Fun"
>> Logo1/switch-type
== "pict"
>> probe Logo1
make object! [ type: "pict" text: "Emporium of Liquid Fun" pict: #{} file: "" altt: "" switch-type: func [ {Toggles the logo object's type between 'text' and 'pict'.} ][ type: either type = "text" ["pict"] ["text"] ] ]
>> probe Logo2
make object! [ type: "text" text: "" pict: #{} file: "" altt: "" switch-type: func [ {Toggles the logo object's type between 'text' and 'pict'.} ][ type: either type = "text" ["pict"] ["text"] ] ] But, of course, after all that, I see now that it might be better if the object were internally identified, rather than depending upon the word that happens to reference it ;-) make object! [ name: "Logo1" type: "Primary Store Logo" styl: "text" text: "Emporium of Liquid Fun" etc... -- Pete Wason|"LWATPLOTG"|[zoon--stumpworld--c]|[mrzoon--hynoom--c]|CUCUG|TA|PHX