В 1975м году, ПК IBM 5100 выпускалась в вариантах с языками программирования BASIC или APL. Как можно догадаться, что в итоге основной упор был сделан на интерпретатор BASIC'а по причине того, что при принятии решения о том, что покупать, пользователям данного ПК он казался более понятным, а APL требовал какого-то минимального уровня вхождения. Говорят, что что APL потерял популярность из-за не ascii-символов, может это отчасти и так, но произошло это не в 75м.
Возможно, история программирования языков повернулась бы чуть иначе, если бы развитие пошло с упором на интерпретатор APL'а, но об этом остаётся только фантазировать, так что предлагаю посмотреть на то как писали программы в далёком 1975м. По-моему, выглядит более элегантно, чем в можно увидеть в большинстве даже сейчас:
описание символов:
× — multiple
÷ — divide
/ — это foldr1
¯123 — отрицательное число
← — define
⍳ — генератор индекса или поиск по индексу
↑ — take
↓ — drop
∧ — and
∨ — or
⌈ — max
⍴ — shape, reshape, мерность
. — inner product, т.е. комбинирует 0 измерение одного аргумента и самое большое измерение другого, в случае матрицы — это получается строки одного со столбцами другого. V f.g W -> (V1 g W1) f (Vn g Wn)
∘. — outer product, т.е. результат комбинации для каждого аргумента
Y[N] — получить N'й элемент, можно указать N для разных уровней через;
Автор: inv2004