Это свойство, унаследованное от математики. Это как сложение , вы можете сложить любое количество чисел, в особом случае, когда сложение без чисел даст вам нулевую сумму.
Аналогично для умножения, если вы умножите произвольное число чисел, вы получите продукт. Чтобы это работало без чисел, в качестве базового значения используется 1 (у которого есть какое-то причудливое название в математике, которое я забыл много лет назад).
Итак, есть ли у вас практическое применение для этого на языке программирования? Да, поскольку вы можете вызывать такие функции, как +
и *
с произвольным числом аргументов, я бы сказал, да. Например:
(apply '+ '(2 3 4)) => 9
(apply '+ '(2 3)) => 5
(apply '+ '(2)) => 2
(apply '+ '()) => 0
(apply '* '(2 3 4)) => 24
(apply '* '(2 3)) => 6
(apply '* '(2)) => 2
(apply '* '()) => 1