summaryrefslogtreecommitdiffhomepage
path: root/ru-ru/paren-ru.html.markdown
diff options
context:
space:
mode:
Diffstat (limited to 'ru-ru/paren-ru.html.markdown')
-rw-r--r--ru-ru/paren-ru.html.markdown41
1 files changed, 20 insertions, 21 deletions
diff --git a/ru-ru/paren-ru.html.markdown b/ru-ru/paren-ru.html.markdown
index 86536d5e..ded3c4fa 100644
--- a/ru-ru/paren-ru.html.markdown
+++ b/ru-ru/paren-ru.html.markdown
@@ -8,8 +8,7 @@ translators:
lang: ru-ru
---
-[Paren](https://bitbucket.org/ktg/paren) - это диалект языка Лисп. Он задуман
-как втроенный язык.
+[Paren](https://bitbucket.org/ktg/paren) - это диалект языка Лисп. Он спроектирован как встроенный язык.
Некоторые примеры из <http://learnxinyminutes.com/docs/racket/>.
@@ -17,7 +16,7 @@ lang: ru-ru
;;; Комментарии
# комментарии
-;; Однострочные комментарии начинаются с точки с зяпятой или символа решетки
+;; Однострочные комментарии начинаются с точки с запятой или символа решетки
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; 1. Примитивные типы данных и операторы
@@ -30,12 +29,12 @@ lang: ru-ru
(int 3.14) ; => 3 : int
(double 123) ; => 123 : double
-;; Обращение к функции записывается (f x y z ...)
+;; Обращение к функции записывается так: (f x y z ...),
;; где f функция, а x, y, z, ... операнды
;; Если вы хотите создать список из букв, используйте (quote), чтобы
;; предотвратить ненужных вычислений
(quote (+ 1 2)) ; => (+ 1 2)
-;; Теперь, некоторые арифметические операции
+;; Итак, некоторые арифметические операции
(+ 1 1) ; => 2
(- 8 1) ; => 7
(* 10 2) ; => 20
@@ -48,14 +47,14 @@ lang: ru-ru
true ; обозначает истину
false ; обозначает ложь
(! true) ; => false
-(&& true false (prn "doesn't get here")) ; => false
-(|| false true (prn "doesn't get here")) ; => true
+(&& true false (prn "досюда не доходим")) ; => false
+(|| false true (prn "досюда не доходим")) ; => true
;;; Символы - это числа (int).
(char-at "A" 0) ; => 65
(chr 65) ; => "A"
-;;; Строки - это массив символов фиктированной длини.
+;;; Строки - это массив символов с фиксированной длиной.
"Привет, мир!"
"Benjamin \"Bugsy\" Siegel" ; обратная косая черта экранирует символ
"Foo\tbar\r\n" ; включает управляющие символы в стиле Cи: \t \r \n
@@ -73,14 +72,14 @@ false ; обозначает ложь
;; 2. Переменные
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; Вы можете создать или инициализировать переменную, используя (set)
-;; имя переменной может использовать любой символ исключая: ();#"
+;; имя переменной может содержать любой символ, исключая: ();#"
(set some-var 5) ; => 5
some-var ; => 5
-;; Обращение к переменной прежде не определенной вызовет исключение
+;; Обращение к переменной, прежде не определенной, вызовет исключение
; x ; => Неизвестная переменная: x : nil
-;; Локальное связывание: Используйте лямбда-вычисения! `a' и `b' связывается
+;; Локальное связывание: Используйте лямбда-вычисление! `a' и `b' связывается
;; с `1' и `2' только в пределах (fn ...)
((fn (a b) (+ a b)) 1 2) ; => 3
@@ -90,17 +89,17 @@ some-var ; => 5
;;; Списки
-;; Списки подобны динамическому массиву (vector). (где произвольный доступ равен O(1).)
+;; Списки подобны динамическому массиву (vector). (произвольный доступ равен O(1).)
(cons 1 (cons 2 (cons 3 (list)))) ; => (1 2 3)
;; `list' - это удобный конструктор списков с переменным числом элементов
(list 1 2 3) ; => (1 2 3)
;; и quote может также использоваться для литеральных значений списка
(quote (+ 1 2)) ; => (+ 1 2)
-;; Можно еще использовать `cons' чтобы добвить элемент в начало списка
+;; Можно еще использовать `cons', чтобы добавить элемент в начало списка
(cons 0 (list 1 2 3)) ; => (0 1 2 3)
-;; Списки являются основным типом, поэтому для них предусмотренно *много* функций
+;; Списки являются основным типом, поэтому для них предусмотрено *много* функций
;; немного примеров из них:
(map inc (list 1 2 3)) ; => (2 3 4)
(filter (fn (x) (== 0 (% x 2))) (list 1 2 3 4)) ; => (2 4)
@@ -112,7 +111,7 @@ some-var ; => 5
;; Используйте `fn' для создания функций.
;; Функция всегда возвращает значение своего последнего выражения
-(fn () "Hello World") ; => (fn () Hello World) : fn
+(fn () "Привет Мир") ; => (fn () Привет Мир) : fn
;; Используйте скобки, чтобы вызвать все функции, в том числе лямбда выражение
((fn () "Привет Мир")) ; => "Привет Мир"
@@ -130,7 +129,7 @@ some-var ; => 5
(strcat "Привет " name)))
(hello "Стив") ; => "Привет Стив"
-;; ... or equivalently, using a sugared definition:
+;; ... или что эквивалентно, используйте синтаксический сахар определения:
(defn hello2 (name)
(strcat "Привет " name))
@@ -149,7 +148,7 @@ some-var ; => 5
;;; Условный оператор
(if true ; проверка выражения
- "это - истина" ; то это выражение
+ "это - истина" ; тогда это выражение
"это - ложь") ; иначе другое выражение
; => "это - истина"
@@ -170,7 +169,7 @@ some-var ; => 5
;; 6. Изменение
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-;; Используйте `set' чтобы назначить новое значение переменной или пространству
+;; Используйте `set', чтобы назначить новое значение переменной или памяти
(set n 5) ; => 5
(set n (inc n)) ; => 6
n ; => 6
@@ -182,9 +181,9 @@ a ; => (3 2)
;; 7. Макросы
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-;; Макросы позволяют вам расширить синтаксис языка.
+;; Макросы позволяют вам расширять синтаксис языка.
;; Paren-макросы легкие.
-;; В действительности, (defn) - это макрос.
+;; Фактически, (defn) - это макрос.
(defmacro setfn (name ...) (set name (fn ...)))
(defmacro defn (name ...) (def name (fn ...)))
@@ -193,5 +192,5 @@ a ; => (3 2)
(infix 1 + 2 (infix 3 * 4)) ; => 15
;; Макросы приводят к неясному коду, т.е. вы можете затереть существующие переменные!
-;; Они приобразуют код.
+;; Они являются кодопреобразующей конструкцией.
```