После полутора лет разработки проект GNU объявил (http://savannah.gnu.org/forum/forum.php?forum_id=8662) о выходе GNU APL 1.6 (http://www.gnu.org/software/apl/), полностью удовлетворяющего требованиям стандарта ISO 13751 ("Programming Language APL, Extended") интерпретатора для одного из старейших языков программирования - APL (http://ru.wikipedia.org/wiki/APL_%28%D1%8F.... Язык APL отличается оптимизацией для работы с массивами произвольной вложенности и поддержкой комплексных чисел, что делает его востребованным для научных расчётов и обработки данных. В начале 1970-х годов идея APL-машины дала толчок к созданию первого в мире персонального компьютера IBM 5100. APL также пользовался большой популярностью на советских ЭВМ начала 80-х годов. Из современных систем, основанных на идеях APL, можно отметить вычислительные среды Mathematica и MATLAB.В новой версии представлен новый API ввода-вывода FIO, который можно использовать вместо встроенных функций FILE I>O. FIO реализован в виде надстройки над системными функциями ввода-вывода, предоставляет аналогичный языку Си набор функций и позволяет манипулировать легко запоминаемыми именами вместо числовых дескрипторов. В лямбда-выражения добавлена поддержка локальных переменных.
URL: http://savannah.gnu.org/forum/forum.php?forum_id=8662
Новость: http://www.opennet.ru/opennews/art.shtml?num=45042
> Из современных систем, основанных на идеях APL, можно отметитьR.
Ага, хоть бы в википедию заглянули.
Дело АПЛ живёт: K, J, Go (эээ ???)
$>> R.
> Дело АПЛ живёт: K, J,Алдфавит вапасносте...
ага, ди, хаскель, эрланг. форт вспомниать на сон не хочется )
R --- это, все же, Schema (LISP), а не APL.
Надо смотреть ширше, и сравнивать APL систему с R системой. Тот кто найдет хоть какие то отличия в типовом сеансе (включая большинство расчетов) будет отправлен на военный склад в инспекцию столбов.Поверх Схемы реализовали кучу фишек APL, в том числе и принципиальное отсутствие скаляров.
> Из современных систем, основанных на идеях APL, можно отметитьМногое, начиная с UNIX pipes.
вопрос: где достать такие кнопки для клавиатуры, чтобы писать на данном языке?
в мане сказано только что должен быть utf-8, чтобы символы APL правильно отображались.
Тогда тебе нужен J.
https://github.com/tonsky/FiraCode же
Вы бы еще предложили вставлять эмоджи в код
улыбайся чаще, и чаща улыбнётся тебе
> "Fira Code is an extension of the Fira Mono font containing a set of ligatures for common programming multi-character combinations. This is just a font rendering feature: underlying code remains ASCII-compatible."Какая жесть... написано одно, а видно другое... Нет уж, если уж извращаться - то по-настоящему и использовать нормальные юникодные символы для всего этого хозяйства.
Кнопки достать легко, любые, какие хочешь. См. http://askubuntu.com/questions/510024/what-are-the-steps-nee... (думаю актуально не только для Ubuntu, но и для других дистров).
> Кнопки достать легко, любые, какие хочешь.Полное описание работы xkb: http://pascal.tsu.ru/other/xkb/
https://ru.wikipedia.org/wiki/%D0%9E%D0%... :-)))
Тьфу ж ты. В общем, я про "оптимус" студии Лебедева :-)
За тот ценник, который тёма за неё хочет, он может креативно засунуть её себе в опу.
Вопрос специалистам по практическому применению APL. Есть BMP, а лучше сжатый TIFF или PNG, с фотографией дифракционной картины. Как его загрузить для обработки? И заодно сразу пара практических задач. Каждый дифракционный пик представляет собой кольцо с неравномерным потемнением. Как найти радиус самой тёмной части кольца? Как найти на APL "массу" кольца (требуется к интенсивности каждой точки применить какую-то функцию, типа экспоненты и просуммировать)?
>Вопрос специалистам по практическому применению APL...Охххххх! Как же это тонко! Прямо изысканно тонко! 8-)
>>Вопрос специалистам по практическому применению APL...
> Охххххх! Как же это тонко! Прямо изысканно тонко! 8-)Уважаемый, на нем все еще ведеться комерческая разработка, не очень много, но есть (Dyalog).
Охотно верю. И общеизвестно, что он заточен под обработку матриц. Поэтому хотелось бы увидеть живой пример его применения для чтения матрицы и её обработки.
> общеизвестно, что он заточен под обработку матрицНе более чем Lua.
он лох, расходимся
Ну живого APL я увы когда учил не застал, и поэтому пользуюсь на телефоне вместо калькулятора его преемником J.Там можно легко грузить изображения в виде массивов. http://www.jsoftware.com/svn/addons/trunk/
Но решение очень простое -- относительно "центра" - можно туда просто ткнуть стилусом у меня на телефоне считается функция расстояния до каждого пикселя в матрице изображение.
Потом ранжируешь (с требуемой точностью) от макс до мин этого расстояния исходную матрицу, среднее (или медиану) складываешь в ранги. По полученному "вектору" ищешь локальные максимумы (может после дополнительного медианного фильтра).
Вот и всё.
То есть превратить 2-мерный массив в 1-мерный, и обрабатывать в цикле каждую точку. И никаких ёмких и выразительных конструкций для упрощения записи в APL нет? И проще взять C, для которого чтение TIFF и PNG хорошо отработано?
Да ты совсем не умный оказался, и условие задачки это твой предел... :(Впрочем есть шанс что исходное не ты писал :)
1. По ссылке сходи, есть готовая либа для твоих (или не твоих "картинок").
2. Нет там никаких циклов, каждое мое предложение это практически _один_ оператор (иногда два). Писать их в явном виде такому как ты, я естественно не буду.
3. Ты даже не понял что я написал, в векторных языках все сводиться к массивам и операциям с ними.
Никаких "превращений" нет, просто переходим в систему координат где у точки растра есть только "расстояние до центра" (можно его легко и автоматом выбрать, просто вместе с медианой в каждом ранге расстояния надо будет считать еще и дисперсию ну и "искать" (для тебя тупого это означает -- "вычислить во всех точках исходного массива, просто подставив в функцию оба массива, и расстояний и значений"). Результатом этой операции является вектор значений, в котором ищем стандартным способом локальные максимумы.
> Писать их в явном виде такому как ты, я естественно не буду.А какому будете? Такому, как я, Вы даже правила пунктуации выполнять не желаете? Вы АПЛ'ом владеете так же, как и собой, не правда ли?
Предпочитаешь выглядеть анально неудовлетворимым шаманом?
1. Если есть готовые решения, как они называются? Аддонов там много, и читать их долго.2. Как называются эти операторы в англоязычной документации?
3. APL никогда не использовал, поэтому и спрашиваю.
4. Чего ты так легко заводишься?
Вы там клоуны сначала решите между собой, сколько вас там "голов в сумме", и чего вам конкретно надо...... а если именно код "реальный" хочется увидеть, то сначала надо эту самую "картинку" хотя бы потрудиться выложить на всеобщее обозрение :).
Скана колец под рукой нет, но есть это: http://pd.chem.ucl.ac.uk/pdnn/inst1/guinier.jpg Каждая дорожка вырезана из своей серии колец. Центры примерно в середине левых тёмных пятен.
Э нет, еще и "радиус исходного кольца" я считать точно не буду :)Это уже совсем другая будет задача -- "задача превозмогания чьего то усердия по вырезанию полосок".
Тогда вот другие примеры:
http://www.iem.ac.ru/qspectr/Sample1.jpg
http://www.iem.ac.ru/qspectr/Sample2.jpgПравда, тут не окружности, а линии пересечения круглых конусов с круглым цилиндром, который потом развернули в плоскость. С одной стороны ось проходит через белую дырку, с другой -- между краями плёнки.
Вот видишь сколько геморроя приносит один ленивый человек, сразу не показавший правильные условия задачи?Уже пошли "проекции конусов на цилиндры" вместо "конусов на плоскость" :)
Весь софт анализа нужных тебе "порошковых-дифрактограмм" берет данные в виде "угол-интенсивность". Геометрию конкретной камеры ты хочешь решать как обратную задачу? Тогда надо хотя бы приблизительно параметрически схему "хода лучей" в таком "цилиндре" знать, с "ограничениями". Потом, как я и говорил раньше, фитить в модель данные по минимуму дисперсии "проекции плоскости в вектор".
Вектор (вернее "угол-интенсивность") уже можно в кучу свободных реализаций для анализа спектра передавать.
Где схема этой "камеры" с "ходом лучей"?
PS и чем тебя не устраивает та бесплатная программка которую предлагают по ссылке?
Нужно суммирование. Для произвольной формы колец. Хотя бы для кругов, дальше сам буду смотреть. Если нужна конкретная геометрия -- вот она: https://www.bnl.gov/isd/documents/35340.pdfПо ссылке -- программа под другую геометрию, от которой отказываются.
Вопрос следовало сформулировать так: насколько легче эту задачу решить на APL, чем на Паскале?
1. Легче решить настолько, насколько легче "не писать циклики, а сразу подставлять массивы".Для симметричных кругов на фотопластинке куда светит конус "но нормали" я написал уже, это пара строчек. Если там начинается коррекция реальных объективов широкоугольных что то там снимающих, то только готовые библиотеки брать. Если это "проекция конуса на цилиндр" то нужен конкретный чертеж. То что ты давал раньше "вдоль оси цилиндра светило", а теперь "поперек"?
2. Но что то я не пойму откуда ты собираешься брать эти "круги", по ссылкам для этой "новой-старой" геометрии пишут что никаких фотопленок она не использует http://www.wikiwand.com/de/Bragg-Brentano-Geometrie там принципиально подходят только детекторы и угол сразу измерен по положению детектора?
А почему ты сам себе отвечаешь?
> Вопрос специалистам по практическому применению APL. Есть BMPРазве BMP еще есть?
Можно PNM, не принципиально.
Первый в мире персональный компьютер, по-настоящему персональный - Apple I
> Первый в мире персональный компьютер, по-настоящему персональный - Apple IДа, https://en.wikipedia.org/wiki/Xerox_Alto конечно.
«Великие художники воруют». Набег Apple на Xerox PARC иногда описывают как самый дерзкий грабеж в истории компьютерной индустрии. Джобс порой не без гордости соглашался с этим мнением.
"Великие художники крадут". Визит сотрудников Apple в исследовательский центр Xerox PARC иногда называют самой крупной кражей в истории компьютерной индустрии. Кстати и сам Джобс не был против такого мнения.
На самом деле, эта фраза описывает разницу между нелепой адаптацией и полным поглощением и ассимиляцией идеи.
Мы никогда не стыдились воровать гениальные идеи у других — Стив Джобс.
Хорошие художники создают, великие художники крадут, а настоящие художники — выполняют заказ вовремя...
А первый настоящий смартвон — Iphone!!!11
Сначала подумал "ха, GNU вышли из проекта GNU" потом подумал "зачем им ещё одна лицензия"
А я сначала подумал, что построена первая атомная подводная лодка GNU. Но потом вспомнил, как они для емакса применили лисп, созданный для разработки искусственного интеллекта, и решил, что что-то тут не так...
> Но потом вспомнил, как они для емакса применили лисп, созданный для разработки
> искусственного интеллекта, и решил, что что-то тут не так...Его Святейшество Saint IGNUcius! Они, даже с большой буквы, слишком неуважительно!