Рассмотрим диадический глагол g
, определенный в терминах диадического глагола f
:
g=. [ f&.|: f
Можно ли переписать g
так, чтобы термин f
появлялся только один раз, но поведение не изменилось?
ОБНОВЛЕНИЕ: локальный контекст
Этот вопрос возник как часть моего решения этой проблемы, которое «расширяет» матрицу в в обоих направлениях так:
Исходная матрица
1 2 3
4 5 6
7 8 9
Расширенная матрица
1 1 1 1 2 3 3 3 3
1 1 1 1 2 3 3 3 3
1 1 1 1 2 3 3 3 3
1 1 1 1 2 3 3 3 3
4 4 4 4 5 6 6 6 6
7 7 7 7 8 9 9 9 9
7 7 7 7 8 9 9 9 9
7 7 7 7 8 9 9 9 9
7 7 7 7 8 9 9 9 9
Мое решение заключалось в том, чтобы сначала развернуть строки матрицы, используя:
f=. ([ # ,:@{.@]) , ] , [ # ,:@{:@]
А затем применить то же решение при транспонировании, чтобы развернуть столбцы уже развернутой по строкам матрицы:
3 ([ f&.|: f) m
И я заметил, что невозможно написать свое решение, сделав временный глагол f
или повторив его определение встроенным ...