It's good enough to enable to pass both metricIn() and metricOut() in some API, but case is enable only metricIn() in one resource and metricOut() in an other one. Not both togheter. Bigger issue comes when between metric() and meta() are many levels of structures instead this one as in example a worse this can happen many times in huge API definition. Solution is separate changing parts (as timestamp()) from common ones but structures become less fancy and consistent. One can end up with XML in UBF description:<br>
<br>tag_name() = string()<br>attribute_name() = string()<br>attrribute_value() = string()<br>xml() = {tag, tag_name(), [{attribute_name(), attribute_value()}], [xml()|string()]}<br><br>which nicely showes how can be made up flexible data in ugly way.<br>
<br><div class="gmail_quote">On Thu, Jan 15, 2009 at 1:35 PM, Steve Davis <span dir="ltr"><<a href="mailto:steven.charles.davis@gmail.com">steven.charles.davis@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Thanks both for your input :)<br>
<div class="Ih2E3d"><br>
<br>
On Jan 15, 5:34 am, Hynek Vychodil <<a href="mailto:vychodil.hy...@gmail.com">vychodil.hy...@gmail.com</a>> wrote:<br>
> UBF type system is not expressive as real project can need. Would be usable<br>
> if types can by described in functional manner:<br>
>      metaIn() = {meta, name(), author()};<br>
>      metaOut() = {meta, name(), author(), timestamp()};<br>
>      metric(X) = {metric, X, content()};<br>
>      metricIn() = metric(metaIn());<br>
>      metricOut() = metric(mataOut());<br>
<br>
</div>Hynek - I'm probably wrong(?) but can't that example be expressed<br>
legally as:<br>
<div class="Ih2E3d"><br>
metaIn() = {meta, name(), author()};<br>
metaOut() = {meta, name(), author(), timestamp()};<br>
</div>metric() = {metric, metaIn(), content()} | {metric, metaOut(), content<br>
()}.<br>
<br>
<br>
Thanks again all for the feedback - I"m committing to prototyping<br>
using UBF at the very least :)<br>
<div><div></div><div class="Wj3C7c">/s<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>
</div></div></blockquote></div><br><br clear="all"><br>-- <br>--Hynek (Pichi) Vychodil<br><br>Analyze your data in minutes. Share your insights instantly. Thrill your boss.  Be a data hero!<br>Try Good Data now for free: <a href="http://www.gooddata.com">www.gooddata.com</a><br>