Есть ли в APL проекты с открытым исходным кодом?
Я пытаюсь изучить APL ( Kona) и ищу примеры проектов, чтобы понять, как опытный APL'er может организовать свой код.
Любые проекты с открытым исходным кодом были бы полезны, но нефинансовые или что-либо, не имеющее тяжелой математики было бы здорово.
2 ответа
Я тоже искал и еще не нашел. APL - очень старый язык; это полностью предшествует всему движению с открытым исходным кодом. В отличие от столь же старого Лиспа (чья история включает в себя множество лабораторных исследований ИИ и дух открытого сотрудничества), культура APL исторически связана с IBM, коммерческими системами разделения времени и финансами. Кевин и я пытаемся изменить это с Kona, все же.
Существует немало k-кода без вонючих циклов. Некоторые из них были написаны для версии k, отличной от той, на которую нацелена Kona. Хакан Кьеллерстранд также имеет отличную страницу К.
Есть также несколько замечательных книг по APL/J/K/Q. Я особенно рекомендую язык программирования Кеннета Айверсона, J Генриха Рича для программистов на C, Q Джеффри Боррора для смертных (Q - новейшая версия Kx's K) и APL от Gilman & Rose : интерактивный подход. Все, кроме последнего, легко доступны онлайн.
Имейте в виду, что многие люди используют APL в качестве математических инструментов (например, R, mathematica, gnuplot и т. Д.), А не для программирования, как такового. (ИМХО, J лучше всего для этого.) K разработан, чтобы быть языком программирования более общего назначения, и ощущается как синтез APL, Lisp и C. Хотя это и есть выброс в семействе языков.
Если вы прочитаете это, вы увидите, что Kona - это "реализация языка программирования K (K3.2) с открытым исходным кодом". К сожалению для вас, если вы посетите домашнюю страницу создателя языка программирования K и загляните в раздел продуктов, вы увидите, что K кажется неподдерживаемым.
Также, глядя на статьи в Википедии как для APL, так и для K, синтаксис выглядит довольно сложным (например, x@>#:'x используется для сортировки списка строк по их длине)! Я рекомендую изучать Ассемблер (через nasm; один из самых популярных ассемблеров), C++, C и, возможно, Python, а не APL или K (оба кажутся неподдерживаемыми и неиспользуемыми).