2

この親子階層があるとしましょう:

(derive ::integer ::decimal)
(derive ::positive-integer ::integer)
(derive ::long ::integer)

そのような階層で最も低い共通の祖先を見つける方法を実装するClojureのイディオムは何ですか? すなわち:

(lca ::positive-integer ::long) ; => ::integer

私の最初の考えには、各引数の組み合わせをトラバースする再帰関数の使用が含まれますparentsが、おそらくもっと良いアプローチがあると思います。

私の動機は、2 つの引数を取り、引数の型に基づいて最適な実装にディスパッチする multimethod のディスパッチ関数としてこれを使用することです。

4

1 に答える 1