Этот стиль пришел из Code Golf, который также часто ассоциируется с APL, еще одним языком, с которым я много развлекался в последние месяцы!

Ограничения

  • Как можно меньше строк кода

Ну, закройте глаза, ребята, это некрасиво…

Строки настолько длинные, что вам нужно щелкнуть изображение, чтобы просмотреть его полностью, чтобы иметь возможность правильно прочитать исходный код…

Но, но, но он решает проблему частоты терминов всего в 3 строчках кода! 3 строчки!

3 невероятно трудные для чтения строчки кода…

И вот где этот стиль терпит неудачу, погоня за краткостью часто происходит за счет удобочитаемости.

Можно также утверждать, что то, что мы здесь сделали, — это перестановка шагов в меньшем количестве строк без обязательного уменьшения количества шагов. То есть мы не уменьшили количество вещей, которые нужно держать в голове, чтобы понять, что делает этот кусок кода для решения задачи.

В этой заметке синтаксис APL часто описывается как нечитаемый, но я думаю, что проблема не в удобочитаемости, а в знакомости. Его синтаксис и встроенные абстракции чужды большинству разработчиков и сильно отличаются от того, к чему они привыкли.

Когда я изучал API, мне нужно было преодолеть несколько умственных препятствий:

  • имена функций на основе глифов
  • функции имеют монадическую (т.е. префиксную) и диадическую (т.е. инфиксную) формы
  • все работает как с матрицами, так и со скалярами
  • приоритет всегда идет справа налево, за исключением случаев, когда используются фигурные скобки

как только я немного познакомился с языком, я обнаружил, что APL довольно легко читается.

Вы можете найти весь исходный код для этого упражнения здесь.