Я потратил некоторое время, пытаясь понять Clojure multimethods. Главный аргумент "pro" multimethod, насколько я понимаю, является их гибкостью, однако я смущен аргументами о том, почему мультиметоды лучше, чем простой оператор if или case. Может кто-нибудь, пожалуйста, объясните, где изображена линия между полиморфизмом и выражением overglorated case?
EDIT: Я должен был быть более ясным в вопросе, что меня больше интересует сравнение с оператором if. Большое спасибо за ответы!