[erlang-questions] escript exception error, undefined function, why can't use fun in escript script?

Håkan Mattsson <>
Sun Aug 6 16:22:33 CEST 2017


Yes, you may have other functions than main/1 in escripts. But the escript
must be compiled.
​​
Either compiled in run-time
​(using -mode(compile)
​)​
​or pre-compiled ​(using a beam file or archive).

/Håkan

On Sun, Aug 6, 2017 at 3:44 PM, Karl Velicka <>
wrote:

> Hi,
>
> I've run into this myself once - it seems that you can't have
> functions other than main/1 in escripts, although this doesn't appear
> to be documented.
>
> The way around this is to make your scripts compiled, these can have
> multiple functions defined in them. You'll need to add this line
> somewhere in your .escript file:
>
> -mode(compile).
>
>
> Cheers,
> Karl
>
> On 6 August 2017 at 12:44, lib nl <> wrote:
> > Hi,
> >
> >
> >
> > On Linux Mint 18.2 + Erlang/OTP 20.0, there are two escript scripts: a
> and
> > b.
> >
> >
> >
> > 1.      a
> >
> > #!/usr/bin/env escript
> >
> > main(_) ->
> >
> >        L = lists:map(fun(N) -> 2*N end, lists:seq(1,10)),
> >
> >        io:format("~p~n", [L]).
> >
> >
> >
> >
> >
> > 2.      b
> >
> > #!/usr/bin/env escript
> >
> > main(_) ->
> >
> >        L = lists:map(fun f2/1, lists:seq(1,10)),
> >
> >        io:format("~p~n", [L]).
> >
> >
> >
> > f2(N) -> 2 * N.
> >
> >
> >
> >
> >
> > $ chmod u+x a
> >
> > $ ./a
> >
> > [2,4,6,8,10,12,14,16,18,20]
> >
> >
> >
> > $ chmod u+x b
> >
> > $ ./b
> >
> > escript: exception error: undefined function erl_eval:f2/1
> >
> >
> >
> >
> >
> > So why can’t use fun in escript script? Is this a limitation or known
> issue?
> > Are there any references that can give more info regarding this behavior?
> > Thanks!
> >
> >
> >
> >
> >
> >
> >
> > Thanks!
> >
> >
> >
> >
> >
> >
> > _______________________________________________
> > erlang-questions mailing list
> > 
> > http://erlang.org/mailman/listinfo/erlang-questions
> >
> _______________________________________________
> erlang-questions mailing list
> 
> http://erlang.org/mailman/listinfo/erlang-questions
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://erlang.org/pipermail/erlang-questions/attachments/20170806/c255ca57/attachment.html>


More information about the erlang-questions mailing list