Are you guys sure you're not looking for term_to_binary/1 and binary_to_term/1 ?<br><br><div class="gmail_quote">On Thu, Feb 9, 2012 at 10:27 AM, Loïc Hoguin <span dir="ltr"><<a href="mailto:essen@ninenines.eu">essen@ninenines.eu</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">While seemingly practical, I'm not sure why I would want any place in my code where I wouldn't be sure what the input type is. Even with dialyzer checks I'm sure I would make false assumptions and get surprises here and there.<br>

<br>
I also would like an efficient solution, both in processing speed and memory use. Converting to list then binary isn't that great, even less so after module:function calls with guards.<div><div class="h5"><br>
<br>
On 02/09/2012 09:03 AM, Rapsey wrote:<br>
</div></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div class="h5">
I wrote functions that convert between all types that I use constantly.<br>
Much easier to just force a specific type somewhere if you're not sure<br>
what the input type is going to be instead of doing checks everywhere or<br>
annoying conversions like the one you wrote.<br>
It has a dependency on mochinum:digits/1 though.<br>
<br>
tolist(<<_/binary>> = P) -><br>
binary_to_list(P);<br>
tolist(P) when is_atom(P) -><br>
atom_to_list(P);<br>
tolist(P) when is_integer(P) -><br>
integer_to_list(P);<br>
tolist(P) when is_float(P) -><br>
mochinum:digits(P);<br>
tolist(P) when is_list(P) -><br>
P.<br>
<br>
tobin(<<_/binary>> = P) -><br>
P;<br>
tobin(P) when is_list(P) -><br>
iolist_to_binary(P);<br>
tobin(P) when is_atom(P) -><br>
atom_to_binary(P,latin1);<br>
tobin(P) when is_integer(P) -><br>
tobin(integer_to_list(P));<br>
tobin(P) when is_float(P) -><br>
tobin(mochinum:digits(P)).<br>
<br>
toatom(P) when is_binary(P) -><br>
binary_to_atom(P,latin1);<br>
toatom(P) when is_list(P) -><br>
list_to_atom(P);<br>
toatom(P) when is_atom(P) -><br>
P.<br>
toint(<<_/binary>> = P) -><br>
list_to_integer(binary_to_<u></u>list(P));<br>
toint([_|_] = P) -><br>
list_to_integer(P);<br>
toint(P) when is_integer(P) -><br>
P;<br>
toint(P) when is_float(P) -><br>
erlang:round(P).<br>
tofloat(P) when is_integer(P) -><br>
P / 1;<br>
tofloat(P) when is_float(P) -><br>
P;<br>
tofloat(P) when is_binary(P) -><br>
tofloat(binary_to_list(P));<br>
tofloat(P) when is_list(P) -><br>
Str = string:join(string:tokens(P,",<u></u>"),"."),<br>
case string:str(Str,".") of<br>
0 -><br>
tofloat(P ++ ".0");<br>
_ -><br>
list_to_float(Str)<br>
end;<br>
tofloat(P) -><br>
list_to_float(tolist(P)).<br>
<br>
<br>
On Wed, Feb 8, 2012 at 7:29 PM, Loïc Hoguin <<a href="mailto:essen@ninenines.eu" target="_blank">essen@ninenines.eu</a><br></div></div><div class="im">
<mailto:<a href="mailto:essen@ninenines.eu" target="_blank">essen@ninenines.eu</a>>> wrote:<br>
<br>
    Hello,<br>
<br>
    It feels a bit tedious to keep doing things like<br></div>
      list_to_binary(integer_to___<u></u>list(42))<br>
<br>
    or even<br>
      list_to_binary(atom_to_list(__<u></u>forty_two))<div class="im"><br>
<br>
    when we could have convenient integer_to_binary/1 or /2 or<br>
    atom_to_list/1 BIFs.<br>
<br>
    Is there any chance to add them in a future release? With all the<br>
    advantages of binaries it's a shame it's not easier to deal with them.<br>
<br>
    Thanks.<br>
<br>
    --<br>
    Loïc Hoguin<br>
    Erlang Cowboy<br>
    Nine Nines<br></div>
    ______________________________<u></u>___________________<br>
    erlang-questions mailing list<br>
    <a href="mailto:erlang-questions@erlang.org" target="_blank">erlang-questions@erlang.org</a> <mailto:<a href="mailto:erlang-questions@erlang.org" target="_blank">erlang-questions@<u></u>erlang.org</a>><br>
    <a href="http://erlang.org/mailman/__listinfo/erlang-questions" target="_blank">http://erlang.org/mailman/__<u></u>listinfo/erlang-questions</a><br>
    <<a href="http://erlang.org/mailman/listinfo/erlang-questions" target="_blank">http://erlang.org/mailman/<u></u>listinfo/erlang-questions</a>><br>
<br>
<br>
</blockquote><div class="HOEnZb"><div class="h5">
<br>
<br>
-- <br>
Loïc Hoguin<br>
Erlang Cowboy<br>
Nine Nines<br>
______________________________<u></u>_________________<br>
erlang-questions mailing list<br>
<a href="mailto:erlang-questions@erlang.org" target="_blank">erlang-questions@erlang.org</a><br>
<a href="http://erlang.org/mailman/listinfo/erlang-questions" target="_blank">http://erlang.org/mailman/<u></u>listinfo/erlang-questions</a><br>
</div></div></blockquote></div><br>