1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
-module(maps_build_and_match_val).
-export([test/0]).
test() ->
F = fun
(#{ "hi" := first, v := V}) -> {1,V};
(#{ "hi" := second, v := V}) -> {2,V}
end,
{1,"hello"} = F(id(#{"hi"=>first,v=>"hello"})),
{2,"second"} = F(id(#{"hi"=>second,v=>"second"})),
%% error case
case (catch (F(id(#{"hi"=>ok})))) of
{'EXIT',{function_clause,_}} -> ok;
{'EXIT', {{case_clause,_},_}} -> {comment,inlined};
Other ->
test_server:fail({no_match, Other})
end.
%% Use this function to avoid compile-time evaluation of an expression.
id(I) -> I.
|