aiscript icon indicating copy to clipboard operation
aiscript copied to clipboard

比較演算子について提案

Open marihachi opened this issue 1 year ago • 3 comments

2024/1/21 更新

以前(#225)も話があったように値として比較する用途の方が多いと思うので、==演算子でもdeep-equalされるが良いと思います。 ただ、参照比較もあるほうが良さそうです。

例えば

  • 値の比較
    • == 演算子をdeep-equalにする (使用頻度が高いため2文字の演算子)
  • 参照の比較
    • 演算子を追加して、参照の比較をする
      • ===
      • refeq
    • 演算子を追加しないで、Primitive propertyかCore APIのみを追加するでも良さそうです

x.ref_eq(y);
Core:ref_eq(x, y);

marihachi avatar Jan 20 '24 08:01 marihachi

関数の値としての比較(関数内の命令列や関数の型情報などになる?)はあまり必要ないと思われるので非サポートでいいかも ==で比較されたときは、エラーでもいいけど参照比較にフォールバックするのもアリ

2024/1/21 更新 意味が変わるのでフォールバックするのはやめたほうが良いかも

marihachi avatar Jan 20 '24 09:01 marihachi

確かに関数って足したり引いたりするわけじゃないから内容が同じものが複数登場することがほぼ無いのか… 連想配列でも参照比較でよさそう?

FineArchs avatar Jan 20 '24 15:01 FineArchs

関数の場合でも、無名関数など構造的に似ている実体はあるにはあります。 ただそれらを実体で比較したいことがあまりないと思われるので...

marihachi avatar Jan 21 '24 01:01 marihachi