Предположим, что упакованная матрица, содержащая различные типы:
matrix =: ('abc';'defgh';23),:('foo';'bar';45)
matrix
+---+-----+--+ |abc|defgh|23| +---+-----+--+ |foo|bar |45| +---+-----+--+
И дескриптор столбца:
columnTypes =: 'string';'string';'num'
Я хочу применить глаголы к этой матрице по столбцу по типам. Я буду использовать глаголы DoString и DoNum:
chain =: (('string';'num') i. columnTypes) { DoString`DoNum
РЕДАКТИРОВАТЬ: дескрипторы столбцов важны, решение о том, какой глагол использовать, основывается на них , а не на самом типе . На самом деле у меня может быть несколько типов строк, чисел и даже дат (которые будут числовыми в J).
Как мне применить цепочку
к каждой строке матрицы
? Сами глаголы могут позаботиться о том, заключено ли переданное значение в рамку или нет, это нормально. Кроме того, я бы предпочел избегать транспонирования матрицы ( |:
), так как она может быть довольно большой.