kpmy 10 år sedan
förälder
incheckning
f580431fed
1 ändrade filer med 50 tillägg och 10 borttagningar
  1. 50 10
      0.-Описание.md

+ 50 - 10
0.-Описание.md

@@ -25,13 +25,20 @@ LOMO (language of message objects) язык декларативный, моду
 
 ### Встроенные типы
 
-Встроенными типами являются `INTEGER`, `REAL`, `BOOLEAN`, `TRILEAN`, `CHAR`, `STRING`, `ATOM`, `COMPLEX`.
+Встроенными типами являются `INTEGER`, `REAL`, `BOOLEAN`, `TRILEAN`, `CHAR`, `STRING`, `ATOM`, `COMPLEX`, `ANY`.
 
 ### Модуль это тип.
 
 Идентификатор модуля может являться типом переменной, такой тип называется *сторонним* и представляет возможности использовать переменную в качестве экземпляра модуля (т.е. в качестве агента). 
 Доступ к экспортированным переменным осуществляется с помощью селектора `.`.
- 
+
+#### Инфиксная запись
+Для некоторых модулей удобна инфиксная запись передачи сообщений и получения ответного сообщения. Такая запись позволит использовать модули в качестве сложных пользовательских операторов.
+
+Пример инфиксной записи при использовании модуля `Max` (выбор наибольшего из двух чисел:
+
+	5 \Max 9 -> max
+
 ## Инструкции
 
 ### Присваивание
@@ -40,10 +47,10 @@ LOMO (language of message objects) язык декларативный, моду
 
 Пример присваивания:
 
-````
-0 -> x
-x + 1 -> y
-````
+
+	0 -> x
+	x + 1 -> y
+
 
 Каждой переменной может быть присвоено только одно значение. 
 
@@ -59,7 +66,40 @@ x + 1 -> y
 
 Пример тернарного оператора:
 
-````
-x > 0 ? 1 : 0 -> y
-x > 0 ? 1 : x < 0 : -1 : 0 -> y
-````
+	x > 0 ? 1 : 0 -> y
+	x > 0 ? 1 : x < 0 : -1 : 0 -> y
+
+## Селектор
+Селектор это конструкция, позволяющая обращаться к внутреннему содержимому объекта.
+
+Например, к конкретному символу в строке:
+
+	string[i] -> char
+
+### Простой селектор
+
+Простой селектор содержит одно выражение.
+
+	string[i]
+	str[2+i*2]
+
+### Составной селектор
+
+Составной селектор содержит два и более выражений, разделенных запятой.
+
+	string[0, 1, 2, 3]
+
+### Селектор диапазона
+
+Селектор диапазона содержит два значения, разделенные символом `..`, что указывает на обращение по всему диапазону значений с шагом равным `1`. 
+
+	string[0 .. 4]
+	string[4 .. 0]
+
+При этом возможно указывать диапазоны как в сторону уменьшения, так и в сторону увеличения значений, таким образом обеспечивается возможность комбинировать значения.
+
+### Открытый диапазон
+
+Селектор открытого диапазона позволяет выбрать значения начиная с заданного до неизвестного предела (только в сторону увеличения).
+
+	string[1 ..]