C++やJavaには関数型のパターンマッチとまったく同じものはないけど
オーバーロードという静的ディスパッチはあるわな(C++にはテンプレートもある)

多くの動的型言語には同じ機構はない(そもそも同名の関数を多重定義できない)ので
似たことをやりたければ自分で手動でディスパッチすることになるんじゃないのか?
それこそ実行時型や引数の個数によって