Hello Samuel,

IMHO the function call without parenthesis `myfun` instead of `myfun()` 
notation is a function call helper handy for some functions and while playing 
with the REPL *but* using it inside macros or as real code is not a good idea 
for readability.

As a rationale, I always describe the `foo an argument` syntax is a handy way 
for listing files and is really a corner-case rewritten to `foo("an_argument")` 
before execution. Similarly I describe the dot operator as rewritten to a 
string extraction. 

Thanks,

--
Clément

> -----Original Message-----
> From: dev <dev-boun...@lists.scilab.org> On Behalf Of Samuel Gougeon
> Sent: Tuesday, June 25, 2019 1:38 PM
> To: List dedicated to development questions <dev@lists.scilab.org>
> Subject: [Scilab-Dev] Recursive extraction on a function's identifier
> 
> Hello,
> 
> Let
> function s = myfun()
>    clear s
>    s.a = %pi
>    s.b = %z
> endfunction
> 
> 
> Presently, we get
> 
> 
> --> myfun.a
> Attempt to reference field of non-structure array.
> 
> --> myfun().a
>  ans  =
>    3.1415927
> 
> The type of the symbol myfun as a function is known when calling myfun.a, 
> isn't
> it?
> 
> 
> So, is there a technical or a usage reason to not understand implicitly 
> myfun.a as
> myfun().a ?
> As well, couldn't we expect an error message routing the user to defining
> %function_e() (unless Scilab provides a default definition) ?
> 
> 
> Thanks
> Samuel
> 
> 

_______________________________________________
dev mailing list
dev@lists.scilab.org
http://lists.scilab.org/mailman/listinfo/dev

Reply via email to