[erlang-questions] Sending fun/1 over the network and apply/2 failure
Mon Jul 25 14:17:00 CEST 2016
> Sent: Monday, July 25, 2016 at 6:49 AM
> From: "Mikael Pettersson" <mikpelinux@REDACTED>
> To: "Sid Muller" <sid5@REDACTED>
> Cc: erlang-questions@REDACTED
> Subject: Re: [erlang-questions] Sending fun/1 over the network and apply/2 failure
> A closure only contains a reference to its code, not a copy of the code
> itself. Taking a closure created in module M, passing it to another
> Erlang node and applying it there, requires that the module M is present
> there as well. If it isn't, or if the modules differ too much, you get
> a badfun exception.
> The code part of a closure created in the shell refers to a module in
> the Erlang interpreter (erl_eval or something like that) with the actual
> expression being a plain term in the closed over free variables (which
> the module can interpret). That's why the shell's closures work in some
> cases where closures from beam files don't.
Ahhh, OK that makes sense.
More information about the erlang-questions