Why does Times @@@ {{}} give {1}?
Times @@@ {{}}
becomes {Times[]}
so this question may be reduced to:
- why does
Times[]
evaluate to1
?
This is the Default
value of the Times
operator:
Default[Times]
1
This is mathematically logical and programmatically efficient. This tutorial gives some examples:
- Optional and Default Arguments
It seems you're trying to get all divisors of 120. 1 is a divisor of 120, so why would you want to drop it?
This is just one example of how "Subsets" result including $\emptyset$ is perfectly aligned with the things people use it for.