aiscript
aiscript copied to clipboard
比較演算子について提案
2024/1/21 更新
以前(#225)も話があったように値として比較する用途の方が多いと思うので、==
演算子でもdeep-equalされるが良いと思います。
ただ、参照比較もあるほうが良さそうです。
例えば
- 値の比較
-
==
演算子をdeep-equalにする (使用頻度が高いため2文字の演算子)
-
- 参照の比較
- 演算子を追加して、参照の比較をする
-
===
-
refeq
-
- 演算子を追加しないで、Primitive propertyかCore APIのみを追加するでも良さそうです
- 演算子を追加して、参照の比較をする
例
x.ref_eq(y);
Core:ref_eq(x, y);
関数の値としての比較(関数内の命令列や関数の型情報などになる?)はあまり必要ないと思われるので非サポートでいいかも
==
で比較されたときは、エラーでもいいけど参照比較にフォールバックするのもアリ
2024/1/21 更新 意味が変わるのでフォールバックするのはやめたほうが良いかも
確かに関数って足したり引いたりするわけじゃないから内容が同じものが複数登場することがほぼ無いのか… 連想配列でも参照比較でよさそう?
関数の場合でも、無名関数など構造的に似ている実体はあるにはあります。 ただそれらを実体で比較したいことがあまりないと思われるので...