Цепные глаголы в J

Предположим, что упакованная матрица, содержащая различные типы:

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).

Как мне применить цепочку к каждой строке матрицы ? Сами глаголы могут позаботиться о том, заключено ли переданное значение в рамку или нет, это нормально. Кроме того, я бы предпочел избегать транспонирования матрицы ( |: ), так как она может быть довольно большой.

6
задан MPelletier 23 February 2015 в 19:32
поделиться