<div dir="ltr"><span style="color:rgb(51,51,51);font-family:'normal arial',sans-serif;font-size:15.555556297302246px;line-height:20px">Aggelos is correct that it's used to easily pattern match between an object and a list when writing JSON processing functions. Other suggestions required more creative means to make the distinction.</span><br>

<div><span style="color:rgb(51,51,51);font-family:'normal arial',sans-serif;font-size:15.555556297302246px;line-height:20px"><br></span></div><div><span style="color:rgb(51,51,51);font-family:'normal arial',sans-serif;font-size:15.555556297302246px;line-height:20px">The reason specifically for the 1-tuple are mostly historical. CouchDB originally used mochijson2 directly which uses the form {struct, proplist()}. It was decided that the struct atom was superfluous so it got dropped using mochijson2's optional callbacks.</span></div>

<div><span style="color:rgb(51,51,51);font-family:'normal arial',sans-serif;font-size:15.555556297302246px;line-height:20px"><br>At one point there was a thread between Joe Armstrong, Damien Katz, and Bob Ippolito that settled on the 1-tuple version but that was before NIFs came around and let anyone implement their own efficient JSON parsing. Since NIFs there hasn't been much action around providing BIFs which has resulted in no single format being blessed as the "official" representation.</span></div>

<div><span style="color:rgb(51,51,51);font-family:'normal arial',sans-serif;font-size:15.555556297302246px;line-height:20px"><br></span></div><div><font color="#333333" face="normal arial, sans-serif"><span style="font-size:15.555556297302246px;line-height:20px">AFAIK, the only other widely used format beyond the {proplist()} and {struct, proplist()} format is from jsx [1] which uses proplists exclusively. Alisdair (the author of JSX) and I have had many discussions on the pros and cons of both formats but have only managed to agree to disagree on which is better.</span></font></div>

<div><br></div><div><font color="#333333" face="normal arial, sans-serif"><span style="font-size:15.555556297302246px;line-height:20px">[1] <a href="https://github.com/talentdeficit/jsx">https://github.com/talentdeficit/jsx</a></span></font></div>

</div><div class="gmail_extra"><br><br><div class="gmail_quote">On Sat, Jul 13, 2013 at 11:07 AM, Andrew Ledvina <span dir="ltr"><<a href="mailto:wvvwwvw@gmail.com" target="_blank">wvvwwvw@gmail.com</a>></span> wrote:<br>

<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">The reason for the extra tuple list is to distinguish ambiguous cases involving empty lists and empty objects. Mochijson takes a different approach but something must be done to deal with the Erlang types available.<span></span><br>



<br>
------------------------------<br>
<br>
Message: 9<br>
Date: Sat, 13 Jul 2013 10:05:00 +0300<br>
From: Aggelos Giantsios <<a>aggelgian@gmail.com</a>><br>
To: Mike Oxford <<a>moxford@gmail.com</a>><br>
Cc: Erlang Questions <<a>erlang-questions@erlang.org</a>><br>
Subject: Re: [erlang-questions] jiffy encoding<br>
Message-ID:<br>
        <<a>CAAyN70R1LjoHcjWbb8WPnCZKS5ez12Y_AaW0HKJYU+o3hzG_KQ@mail.gmail.com</a>><br>

Content-Type: text/plain; charset="iso-8859-1"<div><div class="h5"><br>
<br>
On Sat, Jul 13, 2013 at 3:58 AM, Mike Oxford <<a>moxford@gmail.com</a>> wrote:<br>
<br>
> From the docs...<br>
> {[{foo, bar}]}             -> {"foo": "bar"} -> {[{<<"foo">>, <<"bar">>}]}<br>
><br>
> Why does jiffy need the extra "tuple list" syntax?<br>
> Anyone happen to know?<br>
><br>
<br>
Hello!<br>
<br>
I believe the notion is that an orddict is converted to a JSON dictionary.<br>
I guess in order to distinguish an orddict from a regular list, they wrap<br>
the orddict in a tuple.<br>
<br>
Aggelos<br></div></div>
-------------- next part --------------<br>
An HTML attachment was scrubbed...<br>
URL: <<a href="http://erlang.org/pipermail/erlang-questions/attachments/20130713/a890fa51/attachment-0001.html" target="_blank">http://erlang.org/pipermail/erlang-questions/attachments/20130713/a890fa51/attachment-0001.html</a>><br>



<br>
------------------------------<div class="im"><br>
<br>
_______________________________________________<br>
erlang-questions mailing list<br>
<a>erlang-questions@erlang.org</a><br>
<a href="http://erlang.org/mailman/listinfo/erlang-questions" target="_blank">http://erlang.org/mailman/listinfo/erlang-questions</a><br>
<br>
<br></div>
End of erlang-questions Digest, Vol 121, Issue 7<br>
************************************************<br>
</blockquote>
<br>_______________________________________________<br>
erlang-questions mailing list<br>
<a href="mailto:erlang-questions@erlang.org">erlang-questions@erlang.org</a><br>
<a href="http://erlang.org/mailman/listinfo/erlang-questions" target="_blank">http://erlang.org/mailman/listinfo/erlang-questions</a><br>
<br></blockquote></div><br></div>