<html>
  <head>
    <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    <div class="moz-cite-prefix">Hi Vlad,<br>
      Thank you much for your notes.<br>
      <br>
      I agree some names were not good enough, I changed these per your
      suggestion.<br>
      Old comment removed as well.<br>
      <br>
      As to OtpErangMap class - I was not going to re-implement it
      initially. But in order to add match/bind I had to do this. I
      tried to not add much new methods, keeping implementation rather
      "just enough" to work with maps. You are very welcome to
      add/change whatever you see reasonable in separate PR though.<br>
      <br>
      Best Regards and Happy New Year!<br>
      - Dmitriy.<br>
      <br>
      git fetch <a moz-do-not-send="true"
        href="https://github.com/x0id/otp.git" target="_blank">https://github.com/x0id/otp.git</a>
      jinterface_pattern_matching<br>
      <br>
<a class="moz-txt-link-freetext" href="https://github.com/x0id/otp/compare/erlang:master...jinterface_pattern_matching">https://github.com/x0id/otp/compare/erlang:master...jinterface_pattern_matching</a><br>
<a class="moz-txt-link-freetext" href="https://github.com/x0id/otp/compare/erlang:master...jinterface_pattern_matching.patch">https://github.com/x0id/otp/compare/erlang:master...jinterface_pattern_matching.patch</a><br>
      <br>
      On 12/31/2014 10:27 AM, Vlad Dumitrescu wrote:<br>
    </div>
    <blockquote
cite="mid:CAA-EFXvpRVhTJjECVJLuyxgtsQD8AVsDK=5P9xKCu8JmtY4yrA@mail.gmail.com"
      type="cite">
      <div dir="ltr">Hi Dmitriy,
        <div><br>
        </div>
        <div>Nice implementation! I have something similar that I wanted
          to submit, but I like some of your details better.</div>
        <div><br>
        </div>
        <div>I have a few comments, after browsing the code just
          briefly:</div>
        <div><br>
        </div>
        <div>- I would prefer to have the OEMap changes as a separate
          PR, as it's a separate issue and there are more things to
          address there, like for example, OEMap could also implement
          Map, like OEList implements Iterable (and might implement
          List). </div>
        <div>- I don't like the name OEVarrier, it doesn't mean
          anything. Maybe OEMatcher would be better?</div>
        <div>- OEBind might be clearer as OEBinding, as it contains a
          set of bindings?</div>
        <div>- I think there are still some merge issues, like for
          example OEList:299 where the comment is from the old equals
          method</div>
        <div><br>
        </div>
        <div>best regards,</div>
        <div>Vlad</div>
        <div><br>
        </div>
      </div>
      <div class="gmail_extra"><br>
        <div class="gmail_quote">On Tue, Dec 30, 2014 at 9:56 PM,
          Dmitriy Kargapolov <span dir="ltr"><<a
              moz-do-not-send="true"
              href="mailto:dmitriy.kargapolov@gmail.com" target="_blank">dmitriy.kargapolov@gmail.com</a>></span>
          wrote:<br>
          <blockquote class="gmail_quote" style="margin:0 0 0
            .8ex;border-left:1px #ccc solid;padding-left:1ex">This
            implements functionality similar to following C functions,
            which are part of erl_interface application:<br>
            - ETERM *erl_format(FormatStr, ...);<br>
            - int erl_match(ETERM *Pattern, ETERM *Term);<br>
            <br>
            To acheve this new classes introduced:<br>
            * OtpErlangVar - variable placeholder;<br>
            * OtpErlangBind - variable values collection;<br>
            * OtpErlangParser - "erl_format" parser implementation;<br>
            * OtpErlangPattern - pattern abstraction with match/bind
            functions;<br>
            <br>
            Classes representing composite objects OtpErlangList,
            OtpErlangTuple, OtpErlangMap and new OtpErlangVar implement
            interface OtpErlangVarrier defining match and bind functions
            for these objects.<br>
            <br>
            Class OtpErlangMap reworked to be based on HashMap instead
            of two separate lists keeping keys and values. This is close
            to native semantics of maps and makes easier implementing
            basic map manipulations.<br>
            <br>
            It addition to OtpErlangBind custom user's class may be used
            as receiver of matched variables values. Java reflection is
            used to prepare variable value setters during the parse
            stage. Java doc has more details and examples. Test cases
            implemented.<br>
            <br>
            git fetch <a moz-do-not-send="true"
              href="https://github.com/x0id/otp.git" target="_blank">https://github.com/x0id/otp.git</a>
            jinterface_pattern_matching<br>
            <br>
            Thanks.<br>
            <br>
            <br>
            <br>
            <br>
            <br>
            _______________________________________________<br>
            erlang-patches mailing list<br>
            <a moz-do-not-send="true"
              href="mailto:erlang-patches@erlang.org">erlang-patches@erlang.org</a><br>
            <a moz-do-not-send="true"
              href="http://erlang.org/mailman/listinfo/erlang-patches"
              target="_blank">http://erlang.org/mailman/listinfo/erlang-patches</a><br>
          </blockquote>
        </div>
        <br>
      </div>
    </blockquote>
    <br>
  </body>
</html>