Почему мультиметоды Clojure лучше чем операторы 'if' или 'case'

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

РЕДАКТИРОВАТЬ: Я должен был быть более ясным в вопросе, что меня больше интересует по сравнению с утверждением «если». Большое спасибо за ответы!

17
задан Iger 12 March 2012 в 14:57
поделиться