Я думаю, что здесь есть пара вещей, которые нужно объяснить, но не разница между каждым и каждым справа.
Ваш первый и второй примеры не совсем сопоставимы. С несколькими аргументами enlist
возвращает один список, поэтому enlist[(1;1);(2;1)]
возвращает общий список, а enlist[1;2]
возвращает типизированный список (список длинных). Подробнее о enlist
здесь .
Теперь одно из применений точки глагола - это multi -вариантное приложение, читайте здесь . Это означает, что он применяет к функции несколько аргументов, и поэтому .
ожидает список. Каждый справа берет каждый элемент с правой стороны по очереди и передает его функции слева. Поскольку .
ожидает список, но каждый элемент во второй строке имеет атомарную длину, он выдает ошибку типа.
Обновление второй строки, чтобы .
получил список, как в первой строке ...
q){[x]x+1} ./: enlist[(1;2)]
'rank
На этот раз мы видим ошибку ранга, поскольку .
пытается применить 2 аргумента к монадической функции. , Подобным образом;
q){[x]x+1}[1;2]
'rank
Чтобы это исправить, мы можем подключить. Таким образом, каждый справа передает 2, 1 список элементов в .
вместо 1, 2 списка элементов.
q){[x]x+1} ./: enlist each (1;2)
2 3