Свёртка пустого вектора. APL отвечает.
+/⍬
0
×/⍬
1
∧/⍬
1
У каждой примитивной функции свой нейтральный элемент. Ноль для плюса. Единица для умножения и для логического «и». ⌈/⍬ даёт самое отрицательное число, какое есть у интерпретатора. Никакого особого случая у вызывающего кода. Никакой проверки длины перед свёрткой.
У dfn ничего такого нет. {⍺+⍵}/⍬ в Dyalog - это DOMAIN ERROR. Та же арифметика, а нейтрального элемента нет, потому что для произвольной функции интерпретатор знать его не может.
Большинство языков, которые я читаю, решают это для каждой функции отдельно. sum возвращает ноль, max бросает исключение или возвращает пустой вариант, product иногда вообще отсутствует. В APL это одно правило. Кого-нибудь ещё раздражает, сколько языков превращают его в таблицу?