Соревнование по решению проблем APL


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

Не могли бы вы написать функцию для суммирования первых ста тысяч целых чисел всего за 9 нажатий клавиш?

С APL это все, что нужно, но одну из клавиш нельзя найти на обычной клавиатуре. 

Если вы не сталкивались с ним раньше, он был разработан в 1960-х годах Кеннетом Э. Иверсон, который разработал математическую нотацию для манипулирования массивами, начиная с 1957 года. В предисловии к своей книге Язык программирования он формулирует свою предпосылку:

Прикладная математика в значительной степени связана с разработкой и анализом явных процедур для вычисления точных или приближенных значений различных функций. Такие явные процедуры называются алгоритмами или программами. Поскольку эффективная нотация для описания программ имеет значительную синтаксическую структуру, она называется языком программирования.

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

APL не следует отвергать как «исторический язык», он в значительной степени является постоянным. Согласно APL Wiki, Язык программирования APL:

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

Одним из препятствий для использования APL была и остается его нотация.

Вам нужно было найти какой-то способ ввода его набора символов. Теперь все гораздо проще. На веб-сайте Try APL есть экранная клавиатура, а также шпаргалка, которая дает вам описание каждого символа. Вот один для iota, используемый в очень коротком коде для получения суммы первых 100 000 целых чисел так же быстро, как это мог сделать Гаусс: 

Если вас соблазняет идея компактного функционального кода, вызов Dyalog дает вам повод попробовать его. 

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

Общий призовой фонд в размере $8500 будет распределен следующим образом: 43 приза:

Главный приз $2500

Второй приз $1250

Третий приз в размере 750 долларов США для трех лучших участников в течение двух этапов конкурса.

по 100 долларов каждому из 20 лучших участников первого этапа конкурса

По 100 долларов каждому 20 участникам, подавшим заявки на участие во втором этапе.

Один студент, не являющийся студентом, выиграет бесплатную регистрацию на встречу пользователей Dyalog 2015, которая состоится в Сицилии, Италия, в сентябре 2015 года. Студент, занявший первое место в конкурсе, будет приглашен в Dyalog 15, чтобы получить свой приз и представить свою работу. Студенту будут оплачены командировочные расходы в размере до 3500 долларов плюс 500 долларов на непредвиденные расходы для участия. 

Ожидается, что участники не будут ранее знакомы с APL, и этап I конкурса знакомит их с языком и имеет 10 небольших проблем, каждая из которых может быть решена с помощью одной строки кода APL. На втором этапе конкурса ситуация начинает накаляться с набором задач различной сложности, для решения которых участникам необходимо будет загрузить файлы, содержащие код их решений. 

Крайний срок проведения конкурса-16 июля.


Добавить комментарий