Причина, по которой это не удается в APL2, заключается в том, что ⌿
является чисто оператором в APL2, тогда как в Dyalog APL это гибридная функция / оператор в том смысле, что он действует как функция, если у него есть массив слева, но какоператор, если слева от него есть функция.
В Dyalog APL, поскольку ⌿
действует как нормальная функция, элементы b
и txt
будут спарены на ¨
каквы ожидаете.
В APL2 b
будет привязан к монадическому оператору ⌿
в качестве единственного операнда, а затем вся производная функция b⌿
будет применена с ¨
к каждому элементуtxt
.Излишне говорить, что весь b
(вектор векторов) не является подходящим левым аргументом для одного приложения ⌿
.
Вы можете обойти эту проблему, обернув ⌿
в функциюи затем с помощью ¨
для этой функции-оболочки.Обертка так же просто, как:
r←x R y
r←x⌿y