2025/02/13(木)たまにはプログラミングの話
2025/02/13 21:26
called-with?の実装は以下のようになっており、
(not (nil? (some #(= args %) (calls f))))(calls f) の戻り値は想定どおりの値を返しているのですが、someの結果がnilになってしまいます。何でだろうと調べた結果、当たり前のことを勘違いしていました。
(= #js :key "value" #js :key "value")これって false になるんですね……。JavaScriptのオブジェクトの比較になるので、当然と言えば当然なのですが。
というわけで、callsで引数のリストをシーケンスのまま取得して、js->cljでClojureの世界に持ち込んでから比較するようにしました。おかげでだいぶテストコードが長くなりましたが、まぁ仕方がない。