Типы данных и переменные

  1. Способы присвоения значений переменным в языке  Friend 
  2. Способы присвоения произвольного значения элементам Базы Знаний
  3. Списки, массивы и ассоциативные массивы
  4. Программа как тип данных языка Friend
  5. Слова и понятия (Фреймы)
  6. Повествования (статьи, сказки, рассказы, документы, книги)
  7. Пространственные формы
  8. Слайды

В языке Friend   существуют следующие типы данных, которые могут быть присвоены  переменным как их значение.

dec  — Число с плавающей запятой высокой точности                   -1.9999999999E-999  … 1.999999999E999

str — Строка текстовых символов произвольной длины              «это строка символом»

text  — Структурированный текст

family — семейство

одномерный массив чисел или строк заданного размера   M[10]

 

{…}   — Множество или Список:

список  произвольных элементов                                    {10, 39, дом, облако}

пара «ключ»-значение                                                                  %(ключ, значение)

ассоциативный список элементов                                    %{ ключ1, значение1; ключ2, значение2, …}

проценты                                                                                           100%

пиксели                                                                                              100px

цвет                                                                                                      #f24ea0,     red,   gren,  белый, красный

Фрейм                                                                                                  Кот

 

Переменные:

Имена переменных желательно записывать только ПРОПИСНЫМИ буквами.     X, Y, VAR1

Переменные желательно предварительно объявлять директивой var{…}. В этом случаи не будет возникать коллизий, и можно заранее задать начальное значение переменной.

var{ X,Y, ВОЛК, ДЕРЕВО }

Переменные могут быть объявлены вместе со своим значением, но значение присваиваемое переменной при ее создании не может быть вычисляемым, а должно уже существовать в момент объявления переменной.

var{ Y := 5, L1:= {q,w,e,r,t}, ТЕКСТ :=’Это любой текст ‘}

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

@ Y → X

Если присвоена ссылка, то при операциях со второй переменной будет изменяться

первая переменная, поскольку вторая переменная хранит только ссылку на первую.

Для того, чтобы присвоить переменной ссылку на иной объект, достаточно просто присвоить ей этот объект:

{a,s,d} → X

Для того, чтобы прекратить использование ссылочной переменной, нужно ее удалить из памяти оператором Clear. Один оператор может удалить несколько объектов из памяти:

Clear{ X, Z, Slon}

ВНИМАНИЕ: Clear вычисляет свои аргументы, которые могут быть заданы ссылочными переменными ли выражениями. Поэтому, в сложных случаях выбора, рекомендуется имена переменных заключать в кавычки:

Clear{ “X”, “Z”, “Slon”}

Переменная в языке Friend является виртуальным Фреймом со своими контекстами и методами. Для того чтобы получить доступ не к значению переменной, а к ее методам, нужно использовать двойную ссылку на нее.

Пример записи Всего фрейма переменной X, и затем его чтения в переменную Y:

@@X.Save(‘/data/koni.var’)

Пример загрузки сохраненной переменной:

task.Load(‘Y‘,’/data/koni.var’)

Массивы переменных:

Friend позволяет создавать ОДНОМЕРНЫЕ массивы переменных (множество элементов с одним именем и доступом по индексу начинающемуся с «0»). Количество элементов массива определяется при помощи указания его размерности в квадратных скобках:

var{ МАССИВ[10], X[12] }

Можно указывать тип элементов массива:

var{ Dec X [9], Text СТРОКИ [30] }

В дальнейшем, для доступа к элементам массива необходимо указывать индекс элемента в квадратных скобках. Индекс может быть вычисляемым выражением:

X[1]+ X[ a*2] → X[a + 3]

Массив так-же можно создать с автоматическим присвоением значений его элементам:

X{12,44,22}

 

Глобальные константы

В языке Friend можно добавлять глобальные константы численного, цветового, или  текстового содержания.

Константы нельзя удалить без полной перезагрузки ядра системы.

Константы разделяются точкой с запятой. Переводы строк и пробелы игнорируются.

Открывающая фигурная скобка должна находиться рядом с оператором.

Имена чувствительны к регистру символов.

Пример:

constant{ значени1 -> имя1;

                  значени2 -> имя2;

                  значени2 -> имя2;

                 }

Константы могут в качестве значения  ссылаться на существующие операторы и фреймы. Этим способом можно создавать синонимы.