Перфо.NET — различия между версиями

Материал из ТХАБ.РФ
Перейти к: навигация, поиск
м
м
Строка 38: Строка 38:
  
 
== См. также ==
 
== См. также ==
 +
* [[Введения в функциональный язык программирования Перфо]]
 +
* [[Скрипты  и программы на  языке Перфо]]
 
* [[Перфолента.NET]]
 
* [[Перфолента.NET]]
 
* [[Перфо (Исходный код)]] языка программирования Перфо на Перфолента.NET
 
* [[Перфо (Исходный код)]] языка программирования Перфо на Перфолента.NET

Версия 20:33, 6 августа 2020

Перфо - интерпретируемый функциональный язык программирования - русскоязычный вариант языка похожего на Scheme (Lisp), унифицированный с языком Перфолента / 1С /OneScript. Полностью написан на языке Перфолента.NET также основан на платформе NET Framework. Пока существует тестовая Альфа версия для внутреннего тестирования участников телеграмм Канала. Расширение .perfo (.перфо ?). В качестве среды разработки используется среда [[[Перфолента.NET]].

Описание языка:

  • есть 3 типа сущностей: Идентификаторы, Значения и Списки
  • Значениями могут быть простые типы: строки, символы, числа, даты, булево (логический тип) и Неопределено, а также созданные во время выполнения объекты и делегаты действий (ссылки на Действия (функции))
    • синтаксис значений такой же, как в языке Перфолента:
 "строка" - строка, "С"с - символ, 4.537 - число, '23.07.2020' - дата, Правда/Ложь/Да/Нет - булево (логическая) , Неопределено    
  • Идентификатор - любой другой набор символов не содержащий пробельных символов: А1, $SYM, !!!Ошибка!!!
  • Списки состоят из любых сущностей разделенных пробелами и заключенных в круглые скобки: (+ 3 4 5)
    • Действие это список, первым элементом которого является идентификатор, а остальные элементы являются параметрами действия
 (ИдентификаторДействия Параметр1 Параметр2 ... ПараметрН), например:
(мин 34 9 100)
    • Идентификатор может быть вычисляемым
((Идент "ИдентификаторДействия") Параметр1 Параметр2 ... ПараметрН)
    • Параметр Действия может быть любой сущностью или последовательностью
    • Последовательность это список состоящий из любых сущностей (Идентификаторы, Значения и Списки), у которого первый элемент НЕ идентификатор. Т.е. все списки это или Последовательность или Действие. Пример последовательности:
 (Значение1 Значение2 Значение3) или ((Действие1) (Действие2) (Действие3)) или ((Действие1) (Действие2) Значение1)
  • Оператор это специальная форма действия, в которой смысл и назначение параметров, а так же их последовательность выполнения определены стандартом языка, например:
(Если (Условие) (СписокДействий1) (СписокДействий2)) или (Перем ИмяПеременной Значение)
  • Делегаты Действий - это ссылки на Действия (функции)

Возвращаемые значения:

  • Значение возвращает само себя (т.е. Значение)
  • Идентификатор возвращает сопоставленное ему значение, в том числе, делегат действия, идентификатор или неопределено
  • Действие может вернуть значение, делегат действия, идентификатор или неопределено
  • оператор возвращает то, что определено стандартом языка
  • последовательность возвращает результат последнего элемента последовательности

См. также

Ссылки