[erlang-bugs] erl_eval funs

Robert Virding robert.virding@REDACTED
Tue Sep 17 16:11:03 CEST 2013


I just saw this. How could shell ever realise that you are referring to an internal function inside an unspecified module? The fun returned by m:f() contains this information.

Robert

----- Original Message -----
> From: "Fred Hebert" <mononcqc@REDACTED>
> To: "Tony Rogvall" <tony@REDACTED>
> Cc: "erlang-bugs Bugs" <erlang-bugs@REDACTED>
> Sent: Saturday, 7 September, 2013 5:55:57 PM
> Subject: Re: [erlang-bugs] erl_eval funs
> 
> This is a 'problem' for all funs going in the shell and evaluator, and
> they also hit escripts without a module name.
> 
> It's about a fun of that type being seen as a local one rather than an
> auto-imported one, and so they get attached to erl_eval like other
> evaluated funs. This works with any other auto-imported function in the
> shell (say process_info/1-2).
> 
> I guess there needs to be an extension to the entire chain to fix this.
> 
> Regards,
> Fred.
> 
> On 09/07, Tony Rogvall wrote:
> > R16B01
> > 
> > The following code compile and works when in a module:
> > 
> > -module(m).
> > -export([f/0]).
> > 
> > f() ->
> > 	fun abs/1.
> > 
> > > (m:f())(-3).
> > 3
> > 
> > But
> > > > (fun abs/1)(-3).
> > ** exception error: undefined function erl_eval:abs/1
> > 
> > 
> > /Tony
> > 
> 
> > _______________________________________________
> > erlang-bugs mailing list
> > erlang-bugs@REDACTED
> > http://erlang.org/mailman/listinfo/erlang-bugs
> 
> _______________________________________________
> erlang-bugs mailing list
> erlang-bugs@REDACTED
> http://erlang.org/mailman/listinfo/erlang-bugs
> 



More information about the erlang-bugs mailing list