Hello Antoine,

Thanks for your quick answer:

Le 28/07/2018 à 18:28, Antoine ELIAS a écrit :
Hello Samuel,

Example outside of xml "object" (lot of overloads)
a = mlist(["toto", "id"], 1);
b = mlist(["toto", "id"], 1);
a == b -> [%t %t]

For mlist we compare the type ("toto") and fields  ("id" in this case)

and
--> a = mlist(["aBcD", "id" "id2"], 1, 2);
--> a==a
 ans  =
  T T T

OK: so
a) there is actually a default equality definition
b) it is actually type+fields-wise
c) it looks not documented: none of the list, mlist, tlist, overloading, comparison, and equal pages indicate it.
d) it is overloadable:

function  r= %aBcD_o_aBcD(a, b)
    r  =  typeof(a)==typeof(b);
    af  =  fieldnames(a);
    r  =  r  &  and(af==fieldnames(b));
    for  f  =  af'
        r  =  r  &  and(a(f)==b(f))
    end
endfunction

--> a==a
 ans  =
  T

Thanks
Samuel
_______________________________________________
dev mailing list
dev@lists.scilab.org
http://lists.scilab.org/mailman/listinfo/dev

Reply via email to