<div dir="ltr">I've looked at erlc -S bc.erl:<div><br></div><div><div>{function, bc, 1, 2}.</div><div>  {label,1}.</div><div>    {line,[{location,"bc.erl",3}]}.</div><div>    {func_info,{atom,bc},{atom,bc},1}.</div>
<div>  {label,2}.</div><div>    {allocate_zero,1,1}.</div><div>    {line,[{location,"bc.erl",3}]}.</div><div>    {gc_bif,bit_size,{f,0},1,[{x,0}],{x,1}}.</div><div>    {line,[]}.</div><div>    {gc_bif,'div',{f,0},2,[{x,1},{integer,336}],{x,1}}.</div>
<div>    {line,[]}.</div><div>    {gc_bif,'*',{f,0},2,[{x,1},{integer,45}],{x,1}}.</div><div>    {move,{x,0},{y,0}}.</div><div>    {move,{x,1},{x,0}}.</div><div>    bs_init_writable.</div><div>    {move,{x,0},{x,1}}.</div>
<div>    {move,{y,0},{x,0}}.</div><div>    {call_last,2,{f,8},1}.</div></div><div><br></div><div><br></div><div><br></div><div style>It is really cool!  Erlang understands that resulting binary will be exactly 45 * (size(Input) div 42) bytes and preallocates it.</div>
<div style>This is a very important reason to use list and binary comprehensions.</div><div style><br></div><div style><br></div></div>