возможно ли перегрузить функцию, по конкретному значению, а не по типу? например как в haskell factorial 0 = 1 factorial x = x * factorial(x - 1) без if-else?