Hi, Philippe,

Philippe Oehler wrote:
> 
> Hi,
> 
> I really need to understand why the return of this function
> doesn't work.
> 

The function *does* return a value (if, as Sunanda points out,
you call it by its actual name ;-)...  Cutting and pasting
from your email:

    >> transfo-time: func [hm] [
    [
    [     hm: parse hm "."
    [     hm/1: to-integer hm/1
    [     hm/2: to-integer hm/2
    [     hm: to-time join hm/1 [":" hm/2]
    [     hm
    [    ]
    >>
    >> heure: "12.01"
    == "12.01"
    >>
    >> transo-time heure
    ** Script Error: transo-time has no value
    ** Near: transo-time heure

Calling with the actual name:

    >> transfo-time heure
    == 12:01

But the rest of your question isn't about a return value:

> 
> heure: hm
> print heure; nothing is print.. heure has no value now.. why ???
> 

You seem to expect that a global word HM would be set by the
evaluation of TRANSFO-TIME but that won't happen.  Your definition
of TRANSFO-TIME begins with

    transfo-time: func [hm] [

which means that the word HM within the function body is local
to the function because it is the argument to the function.


With all that said, the function itself is a bit puzzling to
me.  If you really expect a string which represents a time (but
with a dot instead of the colon that REBOL expects) then the
conversions (from string to block, block of strings to block of
integers, integers back to string) are unnecessary overhead.
Why not say

    transf-time: func [s] [ to-time replace s "." ":" ]

which does this:

    >> transf-time "12.01"
    == 12:01
    >> type? transf-time "12.34"
    == time!

-jn-

-- 
; Joel Neely                             joeldotneelyatfedexdotcom
REBOL [] do [ do func [s] [ foreach [a b] s [prin b] ] sort/skip
do function [s] [t] [ t: "" foreach [a b] s [repend t [b a]] t ] {
| e s m!zauafBpcvekexEohthjJakwLrngohOqrlryRnsctdtiub} 2 ]
-- 
To unsubscribe from this list, please send an email to
[EMAIL PROTECTED] with "unsubscribe" in the 
subject, without the quotes.

Reply via email to