>>972
今どきの言語ならそんなことは起きないんじゃないかな
例えばRustの標準ライブラリには同名のreplace()という関数が10個もあるけど

(1) まず名前空間が分かれている
例えば str::replace() や Option::replace() など

(2) 次にメソッドの場合は名前空間を明示する必要がない
例えば let s = "価格: 123円"; という文字列に対してはstr::を付けずに
s.replace("価格", "値段"); // → "値段: 123円"

(3) 更にジェネリックな引数も取れる
例えば文字列""ではなく文字''も指定可能
s.replace('円', "万円"); // → "価格: 123万円",
文字判定関数を指定することも可能
s.replace(char::is_numeric, "*"); // → "価格: ***円"

このように様々な対象に対して様々な引数で用いられていても
同名のreplace()で曖昧になることもなくそれぞれを使うことができる
昔のように長い関数名を付けずに済むようになっている