fFc=: (32&+)@(*&1.8) ]b=:fFc _40 0 100 _40 32 212 cFf=: fFc^:_1 cFf b _40 0 100Результатом фразы f &. g является глагол (g^:_1)@(f & g) . Он может быть рассмотрен как применение “основной” функции под преобразованием (выполняемым глаголом g до операции, с восстановлением, путем обратного преобразования, после нее). Например:
b=: 0 0 1 0 1 0 1 1 0 0 0 sup=: </\ Подавить единицы после первой sup b 0 0 1 0 0 0 0 0 0 0 0 |. sup |. b Подавить единицы перед последней 0 0 0 0 0 0 0 1 0 0 0 sup&.|. b 0 0 0 0 0 0 0 1 0 0 0 3 +&.^. 4 Умножить, путем взятия экспоненты 12 от суммы логарифмов (^.3)+(^.4) 2.48491 ^ (^.3)+(^.4) 12 ]c=: 1 2 3;4 5;6 7 8 +-----+---+-----+ |1 2 3|4 5|6 7 8| +-----+---+-----+ |.&.> c Распаковать, перевернуть, и упаковать +-----+---+-----+ |3 2 1|5 4|8 7 6| +-----+---+-----+
Упражнения
26.1 | Используйте следующее для упражнений по чтению и письму.
Попробуйте с аргументами a=: 2 3 5 7 , b=: 1 2 3 4
и c=: <@i."0 i. 3 4 : f=: +&.^. Умножение сложением нат. логарифмов g=: +&.(10&^.) Умножение сложением логарифмов по осн. 10 h=: *&.^ Сложение путем умножения i=: |.&.> Реверс внутри каждой упаковки j=: +/&.> Суммировать внутри каждой упаковки k=: +/&> то-же, но оставив в распакованном виде |