is_function vs tuples (functions in non-local modules)

mats cronqvist <>
Fri Jun 11 14:02:54 CEST 2004


> Parser_tr = fun(X)->parser:tr(X) end.
#Fun<erl_eval.6.39074546>
> is_function(Parser_tr).
true

   in your example Fun is a tuple.

> Here's another one that's got me scratching my head:
>
> 1> c(parser).
> {ok,parser}
> 2> parser:tr("x").
> "<tr>x</tr>"
> 3> Fun = {parser, tr}.
> {parser,tr}
> 4> Fun("x").
> "<tr>x</tr>"
> 5> {parser, tr}("x").
> "<tr>x</tr>"
> 6> is_function(Fun).
> false
> 7> is_function({parser, tr}).
> false
>
> Is there any way to tell?
>
> Reason being, I want to pass a list of things to a function.  This  
> function should only call the ones that are actually functions.  I guess  
> I could use catch, but that's got it's own problems (if it is a function  
> and it errors out, I want the error to be passed on up) and doesn't seem  
> elegant.
>
> Thankyou once again for your time,





More information about the erlang-questions mailing list