diff options
| -rw-r--r-- | ru-ru/paren-ru.html.markdown | 41 | 
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  ;; Макросы приводят к неясному коду, т.е. вы можете затереть существующие переменные! -;; Они приобразуют код. +;; Они являются кодопреобразующей конструкцией.  ```  | 
