<div dir="ltr"><br><br><div class="gmail_quote">2008/10/12 lang qiu <span dir="ltr"><<a href="mailto:qiulang@gmail.com">qiulang@gmail.com</a>></span><br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<div dir="ltr">Hi,<br><br>I am confused by the grammar of split_binary/2 in the example of mp3_sync in the book "Programming Erlang",<br><br>get_word(N, Bin) -><br>   <b><i> {_,<<C:4/binary,_/binary>>} = split_binary(Bin, N), C.</i></b><br>

<br>I understand that <i>@spec split_binary(Bin, Pos)</i> -> {Bin1, Bin2} but how does the above clause work ? How does it make C get the first 4 bytes of Bin starting from N ?<br></div></blockquote><div><br>get_word(N, Bin) -><br>
   <b><i> {_,<<C:4/binary,_/binary>>} = split_binary(Bin, N),<br>    C.<br><br></i></b>is shorthand for:<b><i><br><br></i></b>get_word(N, Bin) -><br>
   <b><i> {Bin1, Bin2} = split_binary(Bin, N),<br>    </i></b><b><i><<C:4/binary,_/binary>> = Bin2,</i></b><br><b><i>
    C.</i></b><br><br>Another way how to write it:<br><br>get_word(N, Bin) -><br>   <b><i><<_:N/binary, C:4/binary,_/binary>> = Bin,</i></b><br><b><i>    C.</i></b><br> <br></div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<div dir="ltr"><br>Thanks!<br></div>
<br>_______________________________________________<br>
erlang-questions mailing list<br>
<a href="mailto:erlang-questions@erlang.org">erlang-questions@erlang.org</a><br>
<a href="http://www.erlang.org/mailman/listinfo/erlang-questions" target="_blank">http://www.erlang.org/mailman/listinfo/erlang-questions</a><br></blockquote></div><br><br clear="all"><br>-- <br>--Hynek (Pichi) Vychodil<br>

</div>