読者です 読者をやめる 読者になる 読者になる

R13A 以降に追加された関数を今使わないのでメモすることで忘れる。

erlang

erlang:make_tuple(Arity, Default, InitList) -> tuple()

  • R13B で追加
  • BIF
> erlang:make_tuple(4, aa, [{2,bb}, {4, cc}]).    
{aa,bb,aa,cc}
> erlang:make_tuple(4, aa, [{2,bb}, {4, cc}, {2, dd}]).
{aa,dd,aa,cc}

atom_to_binary(Atom, Encoding) -> binary()

  • R13A で追加
  • binary_to_existing_atom(Binary, Encoding) -> atom() も追加されました
  • BIF
> erlang:atom_to_binary('Erlang', utf8).
<<"Erlang">>
> erlang:atom_to_binary('Erlang', unicode).
<<"Erlang">>

erlang:binary_to_atom(Binary, Encoding) -> atom()

  • R13A で追加
  • BIF
> erlang:binary_to_atom(<<"Erlang">>, unicode).
'Erlang'
> erlang:binary_to_atom(<<1024>>, utf8).     
'\000'

erlang:min(Term1, Term2) -> Minimum

  • R13A で追加
  • erlang:max も追加されました
> erlang:min({10}, {20}).
{10}
> erlang:min({10,a}, {20}).
{20}
> erlang:min({10,a}, {20,a}).
{10,a}
> erlang:min({10,a}, 20).    
20
> erlang:min(5, 20).     
5

lists:keyfind(Key, N, TupleList) -> Tuple | false

  • R13A で追加
  • lists:keysearch との違いは {value, ...} が付いてるかどうか
  • BIF
> lists:keyfind(2, 2, [{1,2}, {2,2}, {3,4}]).
{1,2}
> lists:keysearch(2, 2, [{1,2}, {2,2}, {3,4}]).
{value,{1,2}}