[erlang-questions] maps and lager: how to handle new type gracefully?

Luca Favatella <>
Tue Apr 29 17:02:18 CEST 2014


Loïc Hoguin wrote:
 > erlang:function_exported(erlang, is_map, 1) can tell you if it exists
before you try to call it.

Max Lapshin wrote:
 > huh, rather complicated, but ok, it will work.

Hi,

I think it doesn't because is_map is a BIF, thus function_exported 
returns false even if the is_map function is there.

 From http://www.erlang.org/doc/man/erlang.html#function_exported-3:
"Returns false for any BIF (functions implemented in C rather than in 
Erlang)."


Erlang/OTP 17 [erts-6.0] [source] [64-bit] [smp:4:4] [async-threads:10] 
[hipe] [kernel-poll:false]

Eshell V6.0  (abort with ^G)
1> erlang:function_exported(erlang, is_map, 1).
false
2> erlang:is_map(1).
false


Erlang R15B03 (erts-5.9.3.1) [source] [64-bit] [smp:4:4] 
[async-threads:0] [kernel-poll:false]

Eshell V5.9.3.1  (abort with ^G)
1> erlang:function_exported(erlang, is_map, 1).
false
2> erlang:function_exported(erlang, is_list, 1).
false
3> erlang:is_list(1).
false


Regards
Luca



More information about the erlang-questions mailing list