Введение

Язык программирования, деревня в Иране.

Nial (от "Nested Interactive Array Language") — высокоуровневый язык программирования для работы с массивами, разработанный примерно с 1981 года Майком Дженкинсом из Университета Квинс, Кингстон, Онтарио, Канада. Дженкинс является соавтором алгоритма Дженкинса — Трауба. Nial сочетает в себе функциональную нотацию для массивов, основанную на теории массивов, разработанной Тренчардом Мором, и концепции структурированного программирования для числовых, символьных и текстовых данных. Он чаще всего используется для прототипирования и в области искусственного интеллекта.

К'Ниал

В 1982 году Дженкинс основал компанию (Nial Systems Ltd) для продвижения языка и реализации Q'Nial для Nial. По состоянию на 2014 год веб-сайт компании поддерживает проект с открытым исходным кодом для программного обеспечения Q'Nial, с бинарным и исходным кодом, доступными для загрузки. Лицензия основана на Artistic License 1.0, с единственными отличиями в преамбуле, определении "Владельца авторских прав" (которое изменено с "любой, кто указан в авторском праве или авторских правах на пакет" на "NIAL Systems Limited") и одном случае использования "whoever" (который изменен на "whomever").

Нияльные понятия

Ниал использует обобщенную и выразительную теорию массивов в версии 4, но пожертвовал некоторой общностью функциональной модели и модифицировал теорию массивов в версии 6. В настоящее время доступна только версия 6. Ниал определяет все типы данных как вложенные прямоугольные массивы. Целые числа, логические значения, символы и т.д. рассматриваются как единичный массив или массив, содержащий единственный элемент. Сами массивы могут содержать другие массивы, образуя структуры произвольной глубины. Ниал также предоставляет записи. Они определяются как неоднородная структура массива. Функции в Ниал называются операциями. Из руководства Ниал: "Операция — это функциональный объект, которому передается массив аргументов и возвращается массив результатов. Процесс выполнения операции путем передачи ей значения аргумента называется вызовом операции или применением операции."

Атлас

Атлас в Nial — это операция, состоящая из набора компонентных операций. При применении атласа к значению, каждый элемент атласа последовательно применяется к этому значению для получения результата. Это используется для обеспечения стиля определений без переменных (point-free). Также это используется трансформаторами. В приведенных ниже примерах 'inner [+,*]' список '[+,*]' является атласом.