<div dir="ltr"><div>Roelof: don't do the JSON parser.  Do Garrett's suggestion instead.  I recommend the added facet of trying to build a simple, complete four-function calculator.  For extra credit, add the ability to use parentheses, which gets you to some fundamental computer science discoveries.</div><div><br></div><div><br></div><div>ROK is, as always, correct that this area (parsing ill-defined specifications involving text) is one of the Great Problems of Computer Science, rife with monsters named lex and yacc and their cousins yecc and leex, in the lair of the dread throne of the Basic Multilingual Plane where surrogate pairs lurk in the deep pits of context-free grammar, gnawing on abstract syntax trees.<br></div><div><br></div><div>Nevertheless, the admonition to criticise the exercise doesn't really help all the Roelofs, because they haven't spent countless years in the trenches yet, so have no basis to independently formulate the notion that a maximalist reading of the problem would necessitate a lawyerly reading of iso/iec 10646, or the implementation of an LR(1) parser, or whatever.  The analysis and subsequent constructive exercise-sculpting does need to come from a grizzled, irascible, greying mentor; in my opinion.</div><div><br></div><div>F.</div><div><br></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Thu, Aug 27, 2015 at 7:01 AM, Garrett Smith <span dir="ltr"><<a href="mailto:g@rre.tt" target="_blank">g@rre.tt</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class="">On Thu, Aug 27, 2015 at 6:04 AM, Roelof Wobben <<a href="mailto:r.wobben@home.nl">r.wobben@home.nl</a>> wrote:<br>
> Thanks,<br>
><br>
> Can this be a way to solve the challenge :<br>
> <a href="http://www.evanmiller.org/write-a-template-compiler-for-erlang.html" rel="noreferrer" target="_blank">http://www.evanmiller.org/write-a-template-compiler-for-erlang.html</a><br>
<br>
</span>I think the challenge is to take smaller steps here...<br>
<br>
Either solve this challenge by finding a JSON parser and using it, or<br>
redefine the challenge to "create a simple parser".<br>
<br>
Parsing JSON is a challenge, but I think you should define an interim<br>
challenge first - one that's less challenging.<br>
<br>
Strictly speaking the challenge of parsing JSON in Erlang (and<br>
therefore being able to generate other forms) is not that challenging<br>
as there are like half a dozen decent libraries to do that already. It<br>
can be a challenge to find them, compile and use them - but not that<br>
challenging. So why not just do that and cross this challenge off your<br>
list?<br>
<br>
Then, create a new challenge, which is to parse some simply expression<br>
like "1 + 1" into a term in Erlang. You can then do something<br>
interesting with that term! See hint [1]<br>
<br>
This is a good challenge IMO because you'll learn a lot about Erlang<br>
(your goal) and you'll also experience the empowerment of building<br>
your own language, even if a very simple one.<br>
<br>
What I'm really trying to say is that it's challenging to define the<br>
right challenge. Richard said it best:<br>
<span class=""><br>
> The first thing to do with these exercises is CRITICISE them.<br>
<br>
</span>But don't criticize mine :)<br>
<br>
[1] <a href="https://gist.github.com/cooldaemon/13773/6133f606a809dbd05683f290afaac21fbe7e2ce4" rel="noreferrer" target="_blank">https://gist.github.com/cooldaemon/13773/6133f606a809dbd05683f290afaac21fbe7e2ce4</a><br>
<div class="HOEnZb"><div class="h5">_______________________________________________<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" rel="noreferrer" target="_blank">http://erlang.org/mailman/listinfo/erlang-questions</a><br>
</div></div></blockquote></div><br></div>