From f1a5fb83d4e1d1c4afdb860f1e332607a0b32e9d Mon Sep 17 00:00:00 2001 From: Ev Bogdanov Date: Tue, 15 Aug 2017 21:58:51 +0300 Subject: [elixir/en] Fix exception name --- elixir.html.markdown | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/elixir.html.markdown b/elixir.html.markdown index 9dfffc41..a74baa38 100644 --- a/elixir.html.markdown +++ b/elixir.html.markdown @@ -4,6 +4,7 @@ contributors: - ["Joao Marques", "http://github.com/mrshankly"] - ["Dzianis Dashkevich", "https://github.com/dskecse"] - ["Ryan Plant", "https://github.com/ryanplant-au"] + - ["Ev Bogdanov", "https://github.com/evbogdanov"] filename: learnelixir.ex --- @@ -127,7 +128,8 @@ rem(10, 3) #=> 1 # These operators expect a boolean as their first argument. true and true #=> true false or true #=> true -# 1 and true #=> ** (ArgumentError) argument error +# 1 and true +#=> ** (BadBooleanError) expected a boolean on left-side of "and", got: 1 # Elixir also provides `||`, `&&` and `!` which accept arguments of any type. # All values except `false` and `nil` will evaluate to true. -- cgit v1.2.3 From 92928150f92cc10349af87478985940edc3117aa Mon Sep 17 00:00:00 2001 From: Ev Bogdanov Date: Tue, 15 Aug 2017 23:21:08 +0300 Subject: [elixir/ru] Basic types --- ru-ru/elixir-ru.html.markdown | 119 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 119 insertions(+) create mode 100644 ru-ru/elixir-ru.html.markdown diff --git a/ru-ru/elixir-ru.html.markdown b/ru-ru/elixir-ru.html.markdown new file mode 100644 index 00000000..5a01d269 --- /dev/null +++ b/ru-ru/elixir-ru.html.markdown @@ -0,0 +1,119 @@ +--- +language: elixir +contributors: + - ["Joao Marques", "http://github.com/mrshankly"] + - ["Dzianis Dashkevich", "https://github.com/dskecse"] + - ["Ryan Plant", "https://github.com/ryanplant-au"] +translator: + - ["Ev Bogdanov", "https://github.com/evbogdanov"] +filename: learnelixir-ru.ex +lang: ru-ru +--- + +Elixir — современный функциональный язык программирования, который работает на +виртуальной машине Erlang. Elixir полностью совместим с Erlang, но обладает +дружелюбным синтаксисом и предлагает больше возможностей. + +```elixir + +# Однострочные комментарии начинаются с символа решётки. + +# Для многострочных комментариев отдельного синтаксиса нет, +# поэтому просто используйте несколько однострочных комментариев. + +# Запустить интерактивную Elixir-консоль (аналог `irb` в Ruby) можно +# при помощи команды `iex`. +# Чтобы скомпилировать модуль, воспользуйтесь командой `elixirc`. + +# Обе команды будут работать из терминала, если вы правильно установили Elixir. + +## --------------------------- +## -- Базовые типы +## --------------------------- + +# Числа +3 # целое число +0x1F # целое число +3.0 # число с плавающей запятой + +# Атомы, которые являются нечисловыми константами. Они начинаются с символа `:`. +:hello # атом + +# Кортежи, которые хранятся в памяти последовательно. +{1,2,3} # кортеж + +# Получить доступ к элементу кортежа мы можем с помощью функции `elem`: +elem({1, 2, 3}, 0) #=> 1 + +# Списки, которые реализованы как связные списки. +[1,2,3] # список + +# У каждого непустого списка есть голова (первый элемент списка) +# и хвост (все остальные элементы списка): +[head | tail] = [1,2,3] +head #=> 1 +tail #=> [2,3] + +# В Elixir, как и в Erlang, знак `=` служит для сопоставления с образцом, +# а не для операции присваивания. +# +# Это означает, что выражение слева от знака `=` (образец) сопоставляется с +# выражением справа. +# +# Сопоставление с образцом позволило нам получить голову и хвост списка +# в примере выше. + +# Если выражения слева и справа от знака `=` не удаётся сопоставить, будет +# брошена ошибка. Например, если кортежи разных размеров. +{a, b, c} = {1, 2} #=> ** (MatchError) + +# Бинарные данные +<<1,2,3>> + +# Вы столкнётесь с двумя видами строк: +"hello" # Elixir-строка (заключена в двойные кавычки) +'hello' # Erlang-строка (заключена в одинарные кавычки) + +# Все строки представлены в кодировке UTF-8: +"привет" #=> "привет" + +# Многострочный текст +""" +Я текст на несколько +строк. +""" +#=> "Я текст на несколько\nстрок.\n" + +# Чем Elixir-строки отличаются от Erlang-строк? Elixir-строки являются бинарными +# данными. +<> #=> "abc" +# Erlang-строка — это на самом деле список. +[?a, ?b, ?c] #=> 'abc' + +# Оператор `?` возвращает целое число, соответствующее данному символу. +?a #=> 97 + +# Для объединения бинарных данных (и Elixir-строк) используйте `<>` +<<1,2,3>> <> <<4,5>> #=> <<1,2,3,4,5>> +"hello " <> "world" #=> "hello world" + +# Для объединения списков (и Erlang-строк) используйте `++` +[1,2,3] ++ [4,5] #=> [1,2,3,4,5] +'hello ' ++ 'world' #=> 'hello world' + +# Диапазоны записываются как `начало..конец` (оба включительно) +1..10 #=> 1..10 + +# Сопоставление с образцом применимо и для диапазонов: +lower..upper = 1..10 +[lower, upper] #=> [1, 10] + +# Карты (известны вам по другим языкам как ассоциативные массивы, словари, хэши) +genders = %{"david" => "male", "gillian" => "female"} +genders["david"] #=> "male" + +# Для карт, где ключами выступают атомы, доступен специальный синтаксис +genders = %{david: "male", gillian: "female"} +genders.gillian #=> "female" + +``` -- cgit v1.2.3 From a5188153799aace6d5a1dcb2aff3e86ea8c6ae9c Mon Sep 17 00:00:00 2001 From: Ev Bogdanov Date: Tue, 15 Aug 2017 23:27:15 +0300 Subject: [elixir/ru] Not ready yet --- ru-ru/elixir-ru.html.markdown | 119 ------------------------------------------ 1 file changed, 119 deletions(-) delete mode 100644 ru-ru/elixir-ru.html.markdown diff --git a/ru-ru/elixir-ru.html.markdown b/ru-ru/elixir-ru.html.markdown deleted file mode 100644 index 5a01d269..00000000 --- a/ru-ru/elixir-ru.html.markdown +++ /dev/null @@ -1,119 +0,0 @@ ---- -language: elixir -contributors: - - ["Joao Marques", "http://github.com/mrshankly"] - - ["Dzianis Dashkevich", "https://github.com/dskecse"] - - ["Ryan Plant", "https://github.com/ryanplant-au"] -translator: - - ["Ev Bogdanov", "https://github.com/evbogdanov"] -filename: learnelixir-ru.ex -lang: ru-ru ---- - -Elixir — современный функциональный язык программирования, который работает на -виртуальной машине Erlang. Elixir полностью совместим с Erlang, но обладает -дружелюбным синтаксисом и предлагает больше возможностей. - -```elixir - -# Однострочные комментарии начинаются с символа решётки. - -# Для многострочных комментариев отдельного синтаксиса нет, -# поэтому просто используйте несколько однострочных комментариев. - -# Запустить интерактивную Elixir-консоль (аналог `irb` в Ruby) можно -# при помощи команды `iex`. -# Чтобы скомпилировать модуль, воспользуйтесь командой `elixirc`. - -# Обе команды будут работать из терминала, если вы правильно установили Elixir. - -## --------------------------- -## -- Базовые типы -## --------------------------- - -# Числа -3 # целое число -0x1F # целое число -3.0 # число с плавающей запятой - -# Атомы, которые являются нечисловыми константами. Они начинаются с символа `:`. -:hello # атом - -# Кортежи, которые хранятся в памяти последовательно. -{1,2,3} # кортеж - -# Получить доступ к элементу кортежа мы можем с помощью функции `elem`: -elem({1, 2, 3}, 0) #=> 1 - -# Списки, которые реализованы как связные списки. -[1,2,3] # список - -# У каждого непустого списка есть голова (первый элемент списка) -# и хвост (все остальные элементы списка): -[head | tail] = [1,2,3] -head #=> 1 -tail #=> [2,3] - -# В Elixir, как и в Erlang, знак `=` служит для сопоставления с образцом, -# а не для операции присваивания. -# -# Это означает, что выражение слева от знака `=` (образец) сопоставляется с -# выражением справа. -# -# Сопоставление с образцом позволило нам получить голову и хвост списка -# в примере выше. - -# Если выражения слева и справа от знака `=` не удаётся сопоставить, будет -# брошена ошибка. Например, если кортежи разных размеров. -{a, b, c} = {1, 2} #=> ** (MatchError) - -# Бинарные данные -<<1,2,3>> - -# Вы столкнётесь с двумя видами строк: -"hello" # Elixir-строка (заключена в двойные кавычки) -'hello' # Erlang-строка (заключена в одинарные кавычки) - -# Все строки представлены в кодировке UTF-8: -"привет" #=> "привет" - -# Многострочный текст -""" -Я текст на несколько -строк. -""" -#=> "Я текст на несколько\nстрок.\n" - -# Чем Elixir-строки отличаются от Erlang-строк? Elixir-строки являются бинарными -# данными. -<> #=> "abc" -# Erlang-строка — это на самом деле список. -[?a, ?b, ?c] #=> 'abc' - -# Оператор `?` возвращает целое число, соответствующее данному символу. -?a #=> 97 - -# Для объединения бинарных данных (и Elixir-строк) используйте `<>` -<<1,2,3>> <> <<4,5>> #=> <<1,2,3,4,5>> -"hello " <> "world" #=> "hello world" - -# Для объединения списков (и Erlang-строк) используйте `++` -[1,2,3] ++ [4,5] #=> [1,2,3,4,5] -'hello ' ++ 'world' #=> 'hello world' - -# Диапазоны записываются как `начало..конец` (оба включительно) -1..10 #=> 1..10 - -# Сопоставление с образцом применимо и для диапазонов: -lower..upper = 1..10 -[lower, upper] #=> [1, 10] - -# Карты (известны вам по другим языкам как ассоциативные массивы, словари, хэши) -genders = %{"david" => "male", "gillian" => "female"} -genders["david"] #=> "male" - -# Для карт, где ключами выступают атомы, доступен специальный синтаксис -genders = %{david: "male", gillian: "female"} -genders.gillian #=> "female" - -``` -- cgit v1.2.3