<html>
  <head>
    <meta content="text/html; charset=windows-1252"
      http-equiv="Content-Type">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    <div class="moz-cite-prefix">Hello Antoine,<br>
      <br>
      Thanks for your quick answer:<br>
      <br>
      Le 28/07/2018 à 18:28, Antoine ELIAS a écrit :<br>
    </div>
    <blockquote
      cite="mid:11d2b515-27ed-e35f-231a-54ee2da0e4f0@scilab-enterprises.com"
      type="cite">
      <meta http-equiv="Content-Type" content="text/html;
        charset=windows-1252">
      Hello Samuel,<br>
      <br>
      Example outside of xml "object" (lot of overloads)<br>
      <tt>a = mlist(["toto", "id"], 1);</tt><tt><br>
      </tt><tt>b = mlist(["toto", "id"], 1);</tt><tt><br>
      </tt><tt>a == b -> [%t %t]</tt><tt><br>
      </tt><br>
      For mlist we compare the type ("toto") and fields  ("id" in this
      case)<br>
    </blockquote>
    <br>
    and<br>
    <tt>--> a = mlist(["aBcD", "id" "id2"], 1, 2);</tt><tt><br>
    </tt><tt>--> a==a</tt><tt><br>
    </tt><tt> ans  =</tt><tt><br>
    </tt><tt>  T T T</tt><br>
    <br>
    OK: so<br>
    a) there is actually a default equality definition<br>
    b) it is actually type+fields-wise<br>
    c) it looks not documented: none of the list, mlist, tlist,
    overloading, comparison, and equal pages indicate it.<br>
    d) it is overloadable:<br>
    <pre style="font-family:Monospaced;font-style:normal;font-size:12.0;"><span style="color:rgb(176,24,19);">function</span> <span style="color:rgb(131,67,16);font-weight:bold;">r</span><span style="color:rgb(92,92,92);"> = </span><span style="color:rgb(0,0,0);text-decoration:underline;">%aBcD_o_aBcD</span><span style="color:rgb(74,85,219);">(</span><span style="color:rgb(131,67,16);font-weight:bold;">a</span><span style="color:rgb(0,0,0);">, </span><span style="color:rgb(131,67,16);font-weight:bold;">b</span><span style="color:rgb(74,85,219);">)</span>
    <span style="color:rgb(131,67,16);font-weight:bold;">r</span> <span style="color:rgb(92,92,92);">=</span> <span style="color:rgb(50,185,185);">typeof</span><span style="color:rgb(74,85,219);">(</span><span style="color:rgb(131,67,16);font-weight:bold;">a</span><span style="color:rgb(74,85,219);">)</span><span style="color:rgb(92,92,92);">==</span><span style="color:rgb(50,185,185);">typeof</span><span style="color:rgb(74,85,219);">(</span><span style="color:rgb(131,67,16);font-weight:bold;">b</span><span style="color:rgb(74,85,219);">)</span><span style="color:rgb(0,0,0);">;</span>
    <span style="color:rgb(0,0,0);">af</span> <span style="color:rgb(92,92,92);">=</span> <span style="color:rgb(50,185,185);">fieldnames</span><span style="color:rgb(74,85,219);">(</span><span style="color:rgb(131,67,16);font-weight:bold;">a</span><span style="color:rgb(74,85,219);">)</span><span style="color:rgb(0,0,0);">;</span>
    <span style="color:rgb(131,67,16);font-weight:bold;">r</span> <span style="color:rgb(92,92,92);">=</span> <span style="color:rgb(131,67,16);font-weight:bold;">r</span> <span style="color:rgb(92,92,92);">&</span> <span style="color:rgb(50,185,185);">and</span><span style="color:rgb(74,85,219);">(</span><span style="color:rgb(0,0,0);">af</span><span style="color:rgb(92,92,92);">==</span><span style="color:rgb(50,185,185);">fieldnames</span><span style="color:rgb(74,85,219);">(</span><span style="color:rgb(131,67,16);font-weight:bold;">b</span><span style="color:rgb(74,85,219);">)</span><span style="color:rgb(74,85,219);">)</span><span style="color:rgb(0,0,0);">;</span>
    <span style="color:rgb(160,32,240);">for</span> <span style="color:rgb(174,92,176);text-decoration:underline;">f</span> <span style="color:rgb(188,143,143);">=</span> <span style="color:rgb(188,143,143);">af'</span>
        <span style="color:rgb(131,67,16);font-weight:bold;">r</span> <span style="color:rgb(92,92,92);">=</span> <span style="color:rgb(131,67,16);font-weight:bold;">r</span> <span style="color:rgb(92,92,92);">&</span> <span style="color:rgb(50,185,185);">and</span><span style="color:rgb(74,85,219);">(</span><span style="color:rgb(131,67,16);font-weight:bold;">a</span><span style="color:rgb(74,85,219);">(</span><span style="color:rgb(174,92,176);text-decoration:underline;">f</span><span style="color:rgb(74,85,219);">)</span><span style="color:rgb(92,92,92);">==</span><span style="color:rgb(131,67,16);font-weight:bold;">b</span><span style="color:rgb(74,85,219);">(</span><span style="color:rgb(174,92,176);text-decoration:underline;">f</span><span style="color:rgb(74,85,219);">)</span><span style="color:rgb(74,85,219);">)</span>
    <span style="color:rgb(160,32,240);">end</span>
<span style="color:rgb(176,24,19);">endfunction</span></pre>
    <tt>--> a==a</tt><tt><br>
    </tt><tt> ans  =</tt><tt><br>
    </tt><tt>  T</tt><tt><br>
    </tt><br>
    Thanks<br>
    Samuel<br>
  </body>
</html>