Hi guys,<div><br></div><div>I have no beef with these parse transforms you speak of. But, I haven't</div><div>used them so will stop at wishing them good health - maybe pencil in a few hours</div><div>with them as penance for my non-erlangy sins too. :) </div>
<div><br></div><div>I think folk new to erlang will likely be familiar with XML Path though. So</div><div>picking up a variant based on XPath 1.0 would be fairly natural. I'm clutching</div><div>at straws here, but maybe parse transforms have a role to play here too.</div>
<div><br></div><div>I see no reason why Joe's selector couldn't be bound as function in some</div><div>kind of erlangy xpath for tuples. So we would get something like:</div><div><br></div><div>P = tpath:scan(X, "/top/a/x/p").</div>
<div><br></div><div>No hints required. The path is explicit. The hints in the parse transform would equate to the following XPath</div><div><br></div><div><div>P = tpath:scan(X, "/top//p").</div></div><div><br></div>
<div>If the structure changed so there was a list of x's and we just want the p from the first occurrence?</div><div><br></div><div><div>P = tpath:scan(X, "/top/x[first()]/p").</div></div><div><br></div><div>
Maybe I want all p's matched on some guard or filter?</div><div><br></div><div><div>P = tpath:scan(X, "/top/x[key =/= 'corba']/p[@a]").</div></div><div><br></div><div>And, maybe parse transforms, funs could be plugged in too ...</div>
<div><br></div><div><div>P = tpath:scan(X, "some_module:some_fun(//p[@a)").</div></div><div><br></div><div>Perhaps I'm stuck with the xpath style bag because it's familiar</div><div>and I've been using it for ~14 years. The cool young kids might</div>
<div>prefer a more jsony selection experience. I could live with that:</div><div><br></div><div>P = jsony:scan(X, "top.a.x.p");</div><div><br></div><div>But this: <span style="background-color:rgb(255,255,255);color:rgb(34,34,34);font-family:arial,sans-serif;font-size:13px">#top{a=#one{x=#foo{p=P}}} = X</span></div>
<div><span style="background-color:rgb(255,255,255);color:rgb(34,34,34);font-family:arial,sans-serif;font-size:13px"><br></span></div><div><font color="#222222" face="arial, sans-serif">I can barely parse it visually. It's too noisy, too busy.</font></div>
<div><br></div><div>Cheers,</div><div><br></div><div>Darach.</div><div><br></div><div><div class="gmail_quote">On Fri, Jan 25, 2013 at 10:37 PM, Raoul Duke <span dir="ltr"><<a href="mailto:raould@gmail.com" target="_blank">raould@gmail.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">please contribute to getting LFE back in motion.<br>
$0.02,<br>
sincerely.<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" target="_blank">http://erlang.org/mailman/listinfo/erlang-questions</a><br>
</div></div></blockquote></div><br></div>