From 0cf5e4d5195b717590ac938df796c69399a4ca07 Mon Sep 17 00:00:00 2001 From: Igor Savchuk Date: Mon, 7 Jul 2014 13:43:35 +0400 Subject: add maps:only/2 --- lib/stdlib/src/maps.erl | 11 +++++++++++ 1 file changed, 11 insertions(+) (limited to 'lib/stdlib/src/maps.erl') diff --git a/lib/stdlib/src/maps.erl b/lib/stdlib/src/maps.erl index 4ef1638e6d..b8b284db65 100644 --- a/lib/stdlib/src/maps.erl +++ b/lib/stdlib/src/maps.erl @@ -24,6 +24,7 @@ map/2, size/1, without/2, + only/2, get/3 ]). @@ -201,3 +202,13 @@ size(Map) when is_map(Map) -> without(Ks, M) when is_list(Ks), is_map(M) -> maps:from_list([{K,V}||{K,V} <- maps:to_list(M), not lists:member(K, Ks)]). + + +-spec only(Ks, Map1) -> Map2 when + Ks :: [K], + Map1 :: map(), + Map2 :: map(), + K :: term(). + +only(Ks, M) when is_list(Ks), is_map(M) -> + maps:from_list([{K,V}||{K,V} <- maps:to_list(M), lists:member(K, Ks)]). -- cgit v1.2.3 From 09ed7cb41a89b56db84dd5e0b15b2fa27d198e71 Mon Sep 17 00:00:00 2001 From: Igor Savchuk Date: Thu, 10 Jul 2014 11:42:24 +0400 Subject: maps:only/2 -> maps:with/2 --- lib/stdlib/src/maps.erl | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'lib/stdlib/src/maps.erl') diff --git a/lib/stdlib/src/maps.erl b/lib/stdlib/src/maps.erl index b8b284db65..e72e590834 100644 --- a/lib/stdlib/src/maps.erl +++ b/lib/stdlib/src/maps.erl @@ -24,7 +24,7 @@ map/2, size/1, without/2, - only/2, + with/2, get/3 ]). @@ -204,11 +204,11 @@ without(Ks, M) when is_list(Ks), is_map(M) -> maps:from_list([{K,V}||{K,V} <- maps:to_list(M), not lists:member(K, Ks)]). --spec only(Ks, Map1) -> Map2 when +-spec with(Ks, Map1) -> Map2 when Ks :: [K], Map1 :: map(), Map2 :: map(), K :: term(). -only(Ks, M) when is_list(Ks), is_map(M) -> +with(Ks, M) when is_list(Ks), is_map(M) -> maps:from_list([{K,V}||{K,V} <- maps:to_list(M), lists:member(K, Ks)]). -- cgit v1.2.3