Thanks for the suggestions.  I like Tim's idea better
since it's easier on the caller (caller can just 'do
the script like normal) and probably a little 
less overhead (try/catch exception handling).

Still seems like maybe a script should be able to just
return a value at any point.

Thanks again,

Rodney
 

-----Original Message-----
From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]]
Sent: Friday, June 23, 2000 11:32 AM
To: [EMAIL PROTECTED]
Subject: [REBOL] Return From Middle Of Script? Re:(2)


Why not something like this:

------ start doer.r: ------
REBOL []

do-thing: func [] [
    ; do your script here
    return 1
]

do-thing
------- end doer.r --------

Then you can just

>> do %doer.r
== 1
-- 
Tim Lesher
[EMAIL PROTECTED]


-----Original Message-----
From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]]
Sent: Friday, June 23, 2000 13:08
To: [EMAIL PROTECTED]
Subject: [REBOL] Return From Middle Of Script? Re:


Hi,

> I have a script that 'do(es) another script.
> The called script assembles a string and returns
> it to the caller by placing the string word as
> the last line in the script.  Fine.
> 
> But the called script has numerous places where
> an error can occur and I would like to return
> a partially assembled string at that point.
> How to do this?  'return only works in a function
> and 'halt doesn't seem to allow the script to return
> the last evaluated argument.
> 
> In psuedocode what I want is:
> 
> if (some condition)
> [
> return "string1"
> ]
> 
> but I obviously can't use 'return and the following:
> 
> if (some condition)
> [
> "string1"
> halt
> ]
> 
> does not return "string1" to the caller.
> 
> There doesn't appear to be a 'goto call where I can just
> go to the end of the script either.
> 
> How are you guys accomplishing this sort of thing?  (And more
> philosophically - why can't you use 'return in a script?)
> 
> TIA,
> 
> Rodney
> 
> 

you can try:

result: catch [
    do script
]

and in script:

if some-condition [
    throw string1
]

Reply via email to