演算子overload
良いところ
Add a b
などを
a + b
と書けるので、冗長さを省ける
悪いところ
言語ごとの実現の方法
Nim
Haskell
Numなどの型クラスにインスタンスを追加する
Rust
トレイトに
C#
https://docs.microsoft.com/ja-jp/previous-versions/dotnet/netframework-1.1/cc433287(v=vs.71)
↑ガイドライン
C++
Python
dunder methods
を使う
https://pknight.hatenablog.com/entry/20170321/1490061276
define-by-run
が直観的に書けるのは、演算子over loadしてるから
プログラマは普通に演算子を使えば良い
裏で勝手に計算グラフを作ってくれる
https://github.com/search?q=repo%3Apytorch%2Fpytorch+__mul__&type=code
https://effectivemachinelearning.com/PyTorch/4._Take_advantage_of_the_overloaded_operators
SwiftやScalaでもできるらしい
mrsekut.icon
https://teratail.com/questions/69597