summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--d.html.markdown20
-rw-r--r--elisp.html.markdown3
-rw-r--r--es-es/python3-es.html.markdown6
-rw-r--r--es-es/ruby-es.html.markdown6
-rw-r--r--haskell.html.markdown2
-rw-r--r--lua.html.markdown2
-rw-r--r--matlab.html.markdown4
-rw-r--r--ru-ru/erlang-ru.html.markdown2
-rw-r--r--ru-ru/perl-ru.html.markdown195
-rw-r--r--ua-ua/bash-ua.html.markdown296
-rw-r--r--ua-ua/json-ua.html.markdown67
11 files changed, 219 insertions, 384 deletions
diff --git a/d.html.markdown b/d.html.markdown
index 9ebba385..6f88cf84 100644
--- a/d.html.markdown
+++ b/d.html.markdown
@@ -70,7 +70,7 @@ void main() {
```
We can define new types with `struct`, `class`, `union`, and `enum`. Structs and unions
-are passed to functions by value (i.e. copied) and classes are passed by reference. Futhermore,
+are passed to functions by value (i.e. copied) and classes are passed by reference. Furthermore,
we can use templates to parameterize all of these on both types and values!
```c
@@ -218,7 +218,7 @@ void main() {
// from 1 to 100. Easy!
// Just pass lambda expressions as template parameters!
- // You can pass any old function you like, but lambdas are convenient here.
+ // You can pass any function you like, but lambdas are convenient here.
auto num = iota(1, 101).filter!(x => x % 2 == 0)
.map!(y => y ^^ 2)
.reduce!((a, b) => a + b);
@@ -228,7 +228,7 @@ void main() {
```
Notice how we got to build a nice Haskellian pipeline to compute num?
-That's thanks to a D innovation know as Uniform Function Call Syntax.
+That's thanks to a D innovation know as Uniform Function Call Syntax (UFCS).
With UFCS, we can choose whether to write a function call as a method
or free function call! Walter wrote a nice article on this
[here.](http://www.drdobbs.com/cpp/uniform-function-call-syntax/232700394)
@@ -238,21 +238,23 @@ is of some type A on any expression of type A as a method.
I like parallelism. Anyone else like parallelism? Sure you do. Let's do some!
```c
+// Let's say we want to populate a large array with the square root of all
+// consecutive integers starting from 1 (up until the size of the array), and we
+// want to do this concurrently taking advantage of as many cores as we have
+// available.
+
import std.stdio;
import std.parallelism : parallel;
import std.math : sqrt;
void main() {
- // We want take the square root every number in our array,
- // and take advantage of as many cores as we have available.
+ // Create your large array
auto arr = new double[1_000_000];
- // Use an index, and an array element by reference,
- // and just call parallel on the array!
+ // Use an index, access every array element by reference (because we're
+ // going to change each element) and just call parallel on the array!
foreach(i, ref elem; parallel(arr)) {
ref = sqrt(i + 1.0);
}
}
-
-
```
diff --git a/elisp.html.markdown b/elisp.html.markdown
index 3bed5d1c..da86cab3 100644
--- a/elisp.html.markdown
+++ b/elisp.html.markdown
@@ -2,6 +2,7 @@
language: elisp
contributors:
- ["Bastien Guerry", "http://bzg.fr"]
+ - ["Saurabh Sandav", "http://github.com/SaurabhSandav"]
filename: learn-emacs-lisp.el
---
@@ -26,7 +27,7 @@ filename: learn-emacs-lisp.el
;;
;; Going through this tutorial won't damage your computer unless
;; you get so angry that you throw it on the floor. In that case,
-;; I hereby decline any responsability. Have fun!
+;; I hereby decline any responsibility. Have fun!
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;
diff --git a/es-es/python3-es.html.markdown b/es-es/python3-es.html.markdown
index d30af1c8..05fd7065 100644
--- a/es-es/python3-es.html.markdown
+++ b/es-es/python3-es.html.markdown
@@ -97,7 +97,7 @@ not False # => True
None # => None
# No uses el símbolo de igualdad `==` para comparar objetos con None
-# Usa `is` en lugar de
+# Usa `is` en su lugar
"etc" is None #=> False
None is None #=> True
@@ -383,7 +383,7 @@ def keyword_args(**kwargs):
keyword_args(pie="grande", lago="ness") #=> {"pie": "grande", "lago": "ness"}
-# You can do both at once, if you like# Puedes hacer ambas a la vez si quieres
+# Puedes hacer ambas a la vez si quieres
def todos_los_argumentos(*args, **kwargs):
print args
print kwargs
@@ -511,7 +511,7 @@ def duplicar_numeros(iterable):
for i in iterable:
yield i + i
-# Un generador cera valores sobre la marcha.
+# Un generador crea valores sobre la marcha.
# En vez de generar y retornar todos los valores de una vez, crea uno en cada iteración.
# Esto significa que valores más grandes que 15 no serán procesados en 'duplicar_numeros'.
# Fíjate que 'range' es un generador. Crear una lista 1-900000000 tomaría mucho tiempo en crearse.
diff --git a/es-es/ruby-es.html.markdown b/es-es/ruby-es.html.markdown
index d8b67fe7..e3e43c18 100644
--- a/es-es/ruby-es.html.markdown
+++ b/es-es/ruby-es.html.markdown
@@ -29,7 +29,7 @@ Nadie los usa.
Tu tampoco deberías
=end
-# Lo primero y principal: Todo es un objeto
+# En primer lugar: Todo es un objeto
# Los números son objetos
@@ -128,7 +128,7 @@ ruta = '/mal/nombre/'
# Los símbolos (son objetos)
# Los símbolos son inmutables, constantes reusables representadas internamente por un
-# valor entero. Son usalmente usados en vez de strings para expresar eficientemente
+# valor entero. Son normalmente usados en vez de strings para expresar eficientemente
# valores específicos y significativos
:pendiente.class #=> Symbol
@@ -156,7 +156,7 @@ arreglo[0] #=> 1
arreglo.first #=> 1
arreglo[12] #=> nil
-# Tal como la aritmética, el acceso como variable[índice]
+# Al igual que en aritmética, el acceso como variable[índice]
# es sólo azúcar sintáctica
# para llamar el método [] de un objeto
arreglo.[] 0 #=> 1
diff --git a/haskell.html.markdown b/haskell.html.markdown
index 936744a0..34eee748 100644
--- a/haskell.html.markdown
+++ b/haskell.html.markdown
@@ -426,7 +426,7 @@ qsort (p:xs) = qsort lesser ++ [p] ++ qsort greater
greater = filter (>= p) xs
```
-Haskell is easy to install. Get it [here](http://www.haskell.org/platform/).
+There are two popular ways to install Haskell: The traditional [Cabal-based installation](http://www.haskell.org/platform/), and the newer [Stack-based process](https://www.stackage.org/install).
You can find a much gentler introduction from the excellent
[Learn you a Haskell](http://learnyouahaskell.com/) or
diff --git a/lua.html.markdown b/lua.html.markdown
index 3d95c146..2cd4d7bb 100644
--- a/lua.html.markdown
+++ b/lua.html.markdown
@@ -190,7 +190,7 @@ end
--------------------------------------------------------------------------------
-- A table can have a metatable that gives the table operator-overloadish
--- behavior. Later we'll see how metatables support js-prototypey behaviour.
+-- behaviour. Later we'll see how metatables support js-prototypey behaviour.
f1 = {a = 1, b = 2} -- Represents the fraction a/b.
f2 = {a = 2, b = 3}
diff --git a/matlab.html.markdown b/matlab.html.markdown
index 25f762bb..ddc0cb40 100644
--- a/matlab.html.markdown
+++ b/matlab.html.markdown
@@ -73,7 +73,7 @@ c = exp(a)*sin(pi/2) % c = 7.3891
% Calling functions can be done in either of two ways:
% Standard function syntax:
-load('myFile.mat', 'y') % arguments within parantheses, spererated by commas
+load('myFile.mat', 'y') % arguments within parentheses, separated by commas
% Command syntax:
load myFile.mat y % no parentheses, and spaces instead of commas
% Note the lack of quote marks in command form: inputs are always passed as
@@ -279,7 +279,7 @@ clf clear % clear current figure window, and reset most figure properties
% Properties can be set and changed through a figure handle.
% You can save a handle to a figure when you create it.
-% The function gcf returns a handle to the current figure
+% The function get returns a handle to the current figure
h = plot(x, y); % you can save a handle to a figure when you create it
set(h, 'Color', 'r')
% 'y' yellow; 'm' magenta, 'c' cyan, 'r' red, 'g' green, 'b' blue, 'w' white, 'k' black
diff --git a/ru-ru/erlang-ru.html.markdown b/ru-ru/erlang-ru.html.markdown
index 99ea79ee..69f81800 100644
--- a/ru-ru/erlang-ru.html.markdown
+++ b/ru-ru/erlang-ru.html.markdown
@@ -18,7 +18,7 @@ lang: ru-ru
% Пунктуационные знаки, используемые в Erlang:
% Запятая (`,`) разделяет аргументы в вызовах функций, структурах данных и
% образцах.
-% Точка (`.`) (с пробелом после них) разделяет функции и выражения в
+% Точка (`.`) (с пробелом после неё) разделяет функции и выражения в
% оболочке.
% Точка с запятой (`;`) разделяет выражения в следующих контекстах:
% формулы функций, выражения `case`, `if`, `try..catch` и `receive`.
diff --git a/ru-ru/perl-ru.html.markdown b/ru-ru/perl-ru.html.markdown
new file mode 100644
index 00000000..a907ba41
--- /dev/null
+++ b/ru-ru/perl-ru.html.markdown
@@ -0,0 +1,195 @@
+---
+category: language
+language: perl
+filename: learnperl-ru.pl
+contributors:
+ - ["Korjavin Ivan", "http://github.com/korjavin"]
+translators:
+ - ["Elena Bolshakova", "http://github.com/liruoko"]
+lang: ru-ru
+---
+
+Perl 5 -- высокоуровневый мощный язык с 25-летней историей.
+Особенно хорош для обработки разнообразных текстовых данных.
+
+Perl 5 работает более чем на 100 платформах, от портативных устройств
+до мейнфреймов, и подходит как для быстрого прототипирования,
+так и для крупных проектов.
+
+```perl
+# Комментарии начинаются с символа решетки.
+
+
+#### Типы переменных в Perl
+
+# Скалярные переменные начинаются с знака доллара $.
+# Имя переменной состоит из букв, цифр и знаков подчеркивания,
+# начиная с буквы или подчеркивания.
+
+### В Perl три основных типа переменных: скаляры, массивы, хеши.
+
+## Скаляры
+# Скаляр хранит отдельное значение:
+my $animal = "camel";
+my $answer = 42;
+
+# Скаляры могут быть строками, целыми и вещественными числами.
+# Когда требуется, Perl автоматически выполняет преобразования к нужному типу.
+
+## Массивы
+# Массив хранит список значений:
+my @animals = ("camel", "llama", "owl");
+my @numbers = (23, 42, 69);
+my @mixed = ("camel", 42, 1.23);
+
+
+## Хеши
+# Хеш хранит набор пар ключ/значение:
+
+my %fruit_color = ("apple", "red", "banana", "yellow");
+
+# Можно использовать оператор "=>" для большей наглядности:
+
+my %fruit_color = (
+ apple => "red",
+ banana => "yellow",
+ );
+
+# Важно: вставка и поиск в хеше выполняются за константное время,
+# независимо от его размера.
+
+# Скаляры, массивы и хеши подробно описаны в разделе perldata
+# (perldoc perldata).
+
+# Более сложные структуры данных можно получить, если использовать ссылки.
+# С помощью ссылок можно получить массив массивов хешей, в которых хранятся другие хеши.
+
+#### Условные операторы и циклы
+
+# В Perl есть большинсво привычных условных и циклических конструкций.
+
+if ( $var ) {
+ ...
+} elsif ( $var eq 'bar' ) {
+ ...
+} else {
+ ...
+}
+
+unless ( condition ) {
+ ...
+ }
+# Это более читаемый вариант для "if (!condition)"
+
+# Специфические Perl-овые пост-условия:
+print "Yow!" if $zippy;
+print "We have no bananas" unless $bananas;
+
+# while
+ while ( condition ) {
+ ...
+ }
+
+
+# for, foreach
+for ($i = 0; $i <= $max; $i++) {
+ ...
+ }
+
+foreach (@array) {
+ print "This element is $_\n";
+ }
+
+for my $el (@array) {
+ print "This element is $el\n";
+ }
+
+#### Регулярные выражения
+
+# Регулярные выражения занимают важное место в Perl-е,
+# и подробно описаны в разделах документации perlrequick, perlretut и других.
+# Вкратце:
+
+# Сопоставление с образцом
+if (/foo/) { ... } # выполняется, если $_ содержит "foo"
+if ($a =~ /foo/) { ... } # выполняется, если $a содержит "foo"
+
+# Простые замены
+
+$a =~ s/foo/bar/; # заменяет foo на bar в строке $a
+$a =~ s/foo/bar/g; # заменяет ВСЕ ВХОЖДЕНИЯ foo на bar в строке $a
+
+
+#### Файлы и ввод-вывод
+
+# Открыть файл на чтение или запись можно с помощью функции "open()".
+
+open(my $in, "<", "input.txt") or die "Can't open input.txt: $!";
+open(my $out, ">", "output.txt") or die "Can't open output.txt: $!";
+open(my $log, ">>", "my.log") or die "Can't open my.log: $!";
+
+# Читать из файлового дескриптора можно с помощью оператора "<>".
+# В скалярном контексте он читает одну строку из файла, в списковом --
+# читает сразу весь файл, сохраняя по одной строке в элементе массива:
+
+my $line = <$in>;
+my @lines = <$in>;
+
+#### Подпрограммы (функции)
+
+# Объявить функцию просто:
+
+sub logger {
+ my $logmessage = shift;
+ open my $logfile, ">>", "my.log" or die "Could not open my.log: $!";
+ print $logfile $logmessage;
+}
+
+# Теперь можно использовать эту функцию так же, как и встроенные:
+
+logger("We have a logger subroutine!");
+```
+
+#### Perl-модули
+
+Perl-овые модули предоставляют широкий набор функциональности,
+так что вы можете не изобретать заново велосипеды, а просто скачать
+нужный модуль с CPAN (http://www.cpan.org/).
+Некоторое количество самых полезных модулей включено в стандартную
+поставку Perl.
+
+Раздел документации perlfaq содержит вопросы и ответы о многих частых
+задачах, и часто предлагает подходящие CPAN-модули.
+
+
+#### Unicode
+
+Вам наверняка понадобится работать с не-ASCII текстами.
+Добавьте эти прагмы в начало скрипта:
+
+```perl
+use utf8;
+use open ':std' => ':utf8';
+```
+
+Подробнее читайте в perldoc, разделы perlunicode и open.
+
+
+#### strict, warnings
+
+Прагмы strict и warnings включают полезные проверки во время компиляции:
+
+```perl
+use strict;
+use warnings;
+```
+
+Подробнее смотрите perldoc strict и perldoc warnings.
+
+
+#### Смотрите также
+
+ - [perl-tutorial](http://perl-tutorial.org/)
+ - [обучающий раздел на www.perl.com](http://www.perl.org/learn.html)
+ - [perldoc в вебе](http://perldoc.perl.org/)
+ - встроенная справка : `perldoc perlintro`
diff --git a/ua-ua/bash-ua.html.markdown b/ua-ua/bash-ua.html.markdown
deleted file mode 100644
index 2c930ad1..00000000
--- a/ua-ua/bash-ua.html.markdown
+++ /dev/null
@@ -1,296 +0,0 @@
----
-category: tool
-tool: bash
-contributors:
- - ["Max Yankov", "https://github.com/golergka"]
- - ["Darren Lin", "https://github.com/CogBear"]
- - ["Alexandre Medeiros", "http://alemedeiros.sdf.org"]
- - ["Denis Arh", "https://github.com/darh"]
- - ["akirahirose", "https://twitter.com/akirahirose"]
- - ["Anton Strömkvist", "http://lutic.org/"]
- - ["Rahil Momin", "https://github.com/iamrahil"]
- - ["Gregrory Kielian", "https://github.com/gskielian"]
- - ["Etan Reisner", "https://github.com/deryni"]
-translators:
- - ["Ehreshi Ivan", "https://github.com/IvanEh"]
-lang: ua-ua
----
-
-Bash - командна оболонка unix (unix shell), що також розповсюджувалась як оболонка для
-операційної системи GNU і зараз використовується як командна оболонка за замовчуванням
-для Linux i Max OS X.
-Почти все нижеприведенные примеры могут быть частью shell-скриптов или исполнены напрямую в shell.
-Майже всі приклади, що наведені нижче можуть бути частиною shell-скриптів або
-виконані в оболонці
-
-[Більш детально тут.](http://www.gnu.org/software/bash/manual/bashref.html)
-
-```bash
-#!/bin/bash
-# Перший рядок скрипта - це shebang, який вказує системі, як потрібно виконувати
-# скрипт. Як ви вже зрозуміли, коментарі починаються з #. Shebang - тоже коментар
-
-# Простий приклад hello world:
-echo Hello world!
-
-# Окремі команди починаються з нового рядка або розділяються крапкою з комкою:
-echo 'Перший рядок'; echo 'Другий рядок'
-
-# Оголошення змінної
-VARIABLE="Просто рядок"
-
-# Але не так!
-VARIABLE = "Просто рядок"
-# Bash вирішить, що VARIABLE - це команда, яку він може виконати,
-# і видасть помилку, тому що не зможе знайти її
-
-# І так також не можна писати:
-VARIABLE= 'Просто рядок'
-# Bash сприйме рядок 'Просто рядок' як команду. Але такої команди не має, тому
-# видасть помилку.
-# (тут 'VARIABLE=' інтерпретується як присвоєння тільки в контексті
-# виконання команди 'Просто рядок')
-
-# Використання змінних:
-echo $VARIABLE
-echo "$VARIABLE"
-echo '$VARIABLE'
-# Коли ви використовуєте змінну - присвоюєте значення, експортуєте і т.д. -
-# пишіть її імя без $. А для отримання значення змінної використовуйте $.
-# Одинарні лапки ' не розкривають значення змінних
-
-# Підстановка рядків в змінні
-echo ${VARIABLE/Просто/A}
-# Цей вираз замінить перше входження підрядка "Просто" на "А"
-
-# Отримання підрядка із рядка
-LENGTH=7
-echo ${VARIABLE:0:LENGTH}
-# Цей вираз поверне тільки перші 7 символів змінної VARIABLE
-
-# Значення за замовчуванням
-echo ${FOO:-"DefaultValueIfFOOIsMissingOrEmpty"}
-# Це спрацює при відсутності значення (FOO=) і при пустому рядку (FOO="")
-# Нуль (FOO=0) поверне 0.
-# Зауважте, що у всіх випадках значення самої змінної FOO не зміниться
-
-# Вбудовані змінні:
-# В bash є корисні вбудовані змінні, наприклад
-echo "Значення, яке було повернуте в останній раз: $?"
-echo "PID скрипта: $$"
-echo "Кількість аргументів: $#"
-echo "Аргументи скрипта: $@"
-echo "Аргументи скрипта, розподілені по різним змінним: $1 $2..."
-
-# Зчитування змінних з пристроїв введення
-echo "Як вас звати?"
-read NAME # Зверніть увагу, що вам не потрібно оголошувати нову змінну
-echo Привіт, $NAME!
-
-# В bash є звичайна умовна конструкція if:
-# наберіть 'man test', щоб переглянути детальну інформацію про формати умов
-if [ $NAME -ne $USER ]
-then
- echo "Ім’я користувача не збігається з введеним"
-else
- echo "Ім’я збігаєтьяс з іменем користувача"
-fi
-
-# Зауважте! якщо $Name пуста, bash інтерпретує код вище як:
-if [ -ne $USER ]
-# що є неправильним синтаксисом
-# тому безпечний спосіб використання потенційно пустих змінних має вигляд:
-if [ "$Name" -ne $USER ] ...
-# коли $Name пуста, інтерпретується наступним чином:
-if [ "" -ne $USER ] ...
-# що працює як і очікувалося
-
-# Умовне виконання (conditional execution)
-echo "Виконується завжди" || echo "Виконається, якщо перша команда завершиться з помилкою"
-echo "Виконується завжди" && echo "Виконається, якщо перша команда завершиться успішно"
-
-# Щоб використати && і || у конструкції if, потрібно декілька пар дужок:
-if [ $NAME == "Steve" ] && [ $AGE -eq 15 ]
-then
- echo "Виконається, якщо $NAME="Steve" i AGE=15."
-fi
-
-if [ $NAME == "Daniya" ] || [ $NAME == "Zach" ]
-then
- echo "Виконається, якщо NAME="Steve" або NAME="Zach"."
-fi
-
-# Вирази позначаються наступним форматом:
-echo $(( 10 + 5 ))
-
-# На відмінно від інших мов програмування, Bash - це командна оболонка, а
-# отже, працює в контексті поточної директорії
-ls
-
-# Ця команда може використовуватися з опціями
-ls -l # Показати кожен файл і директорію на окремому рядку
-
-# Результат попередньої команди можна перенаправити на вхід наступної.
-# Команда grep фільтрує вхід по шаблону.
-# Таким чином ми можемо переглянути тільки *.txt файли в поточній директорії:
-ls -l | grep "\.txt"
-
-# Ви можете перенаправ вхід і вихід команди (stdin, stdout, stderr).
-# Наступна команда означає: читати із stdin, поки не зустрінеться ^EOF$, і
-# перезаписати hello.py наступними рядками (до рядка "EOF"):
-cat > hello.py << EOF
-#!/usr/bin/env python
-from __future__ import print_function
-import sys
-print("#stdout", file=sys.stdout)
-print("#stderr", file=sys.stderr)
-for line in sys.stdin:
- print(line, file=sys.stdout)
-EOF
-
-# Запуск hello.py з різними варіантами перенаправлення stdin,
-# stdout, stderr (стандартні потоки введення, виведення і помилок):
-python hello.py < "input.in"
-python hello.py > "output.out"
-python hello.py 2> "error.err"
-python hello.py > "output-and-error.log" 2>&1
-python hello.py > /dev/null 2>&1
-# Поток помилок перезапише фпйл, якщо цей файл існує
-# тому, якщо ви хочете дописувати до файлу, використовуйте ">>":
-python hello.py >> "output.out" 2>> "error.err"
-
-# Перезаписати output.txt, дописати error.err і порахувати кількість рядків:
-info bash 'Basic Shell Features' 'Redirections' > output.out 2>> error.err
-wc -l output.out error.err
-
-# Запустити команду і вивести її файловий дескриптор (див.: man fd; наприклад /dev/fd/123)
-echo <(echo "#helloworld")
-
-# Перезаписати output.txt рядком "#helloworld":
-cat > output.out <(echo "#helloworld")
-echo "#helloworld" > output.out
-echo "#helloworld" | cat > output.out
-echo "#helloworld" | tee output.out >/dev/null
-
-# Подчистить временные файлы с подробным выводом ('-i' - интерактивый режим)
-# Очистити тимчасові файли з детальним виводом (додайте '-i'
-# для інтерактивного режиму)
-rm -v output.out error.err output-and-error.log
-
-# Команди можуть бути підставлені в інші команди використовуючи $():
-# наступна команда виводить кількість файлів і директорій в поточній директорії
-echo "Тут $(ls | wc -l) елементів."
-
-# Те саме можна зробити використовуючи зворотні лапки
-# Але вони не можуть бути вкладеними, тому перший варіант бажаніший
-echo "Тут `ls | wc -l` елементів."
-
-# В Bash є структура case, яка схожа на switch в Java и C++:
-case "$VARIABLE" in
- # перерахуйте шаблони, які будуть використовуватися в якості умов
- 0) echo "Тут нуль.";;
- 1) echo "Тут один.";;
- *) echo "Не пусте значення.";;
-esac
-
-# Цикл for перебирає елементи передані в аргумент:
-# Значення $VARIABLE буде напечатано тричі.
-for VARIABLE in {1..3}
-do
- echo "$VARIABLE"
-done
-
-# Aбо можна використати звичний синтаксис for:
-for ((a=1; a <= 3; a++))
-do
- echo $a
-done
-
-# Цикл for можно використати, щоб виконувати дії над файлами.
-# Цей код запустить команду 'cat' для файлів file1 и file2
-for VARIABLE in file1 file2
-do
- cat "$VARIABLE"
-done
-
-# ... або дії над виводом команд
-# Запустимо cat для виведення із ls.
-for OUTPUT in $(ls)
-do
- cat "$OUTPUT"
-done
-
-# Цикл while:
-while [ true ]
-do
- echo "Тіло циклу..."
- break
-done
-
-# Ви також можете оголосити функцію
-# Оголошення:
-function foo ()
-{
- echo "Аргументи функції доступні так само, як і аргументи скрипта: $@"
- echo "$1 $2..."
- echo "Це функція"
- return 0
-}
-
-# Або просто
-bar ()
-{
- echo "Інший спосіб оголошення функцій!"
- return 0
-}
-
-# Виклик функцій
-foo "Мое имя" $NAME
-
-# Є багато корисних команд:
-# вивести останні 10 рядків файла file.txt
-tail -n 10 file.txt
-# вивести перші 10 рядків файла file.txt
-head -n 10 file.txt
-# відсортувати рядки file.txt
-sort file.txt
-# відібрати або пропустити рядки, що дублюються (з опцією -d відбирає)
-uniq -d file.txt
-# вивести тільки першу колонку перед символом ','
-cut -d ',' -f 1 file.txt
-# замінити кожне 'okay' на 'great' у файлі file.txt (підтримується regex)
-sed -i 's/okay/great/g' file.txt
-# вивести в stdout все рядки з file.txt, що задовольняють шаблону regex;
-# цей приклад виводить рядки, що починаються на foo і закінчуються на bar:
-grep "^foo.*bar$" file.txt
-# використайте опцію -c, щоб вивести кількість входжень
-grep -c "^foo.*bar$" file.txt
-# чтобы искать по строке, а не шаблону regex, используйте fgrep (или grep -F)
-# щоб здійснити пошук по рядку, а не по шаблону regex, використовуйте fgrea (або grep -F)
-fgrep "^foo.*bar$" file.txt
-
-# Читайте вбудовану документацію Bash командою 'help':
-help
-help help
-help for
-help return
-help source
-help .
-
-# Читайте Bash man-документацію
-apropos bash
-man 1 bash
-man bash
-
-# Читайте документацію info (? для допомоги)
-apropos info | grep '^info.*('
-man info
-info info
-info 5 info
-
-# Читайте bash info документацію:
-info bash
-info bash 'Bash Features'
-info bash 6
-info --apropos bash
-```
diff --git a/ua-ua/json-ua.html.markdown b/ua-ua/json-ua.html.markdown
deleted file mode 100644
index 6281ea56..00000000
--- a/ua-ua/json-ua.html.markdown
+++ /dev/null
@@ -1,67 +0,0 @@
----
-language: json
-filename: learnjson-ru.json
-contributors:
- - ["Anna Harren", "https://github.com/iirelu"]
- - ["Marco Scannadinari", "https://github.com/marcoms"]
-translators:
- - ["Ehreshi Ivan", "https://github.com/IvanEh"]
-lang: ua-ua
----
-
-JSON - це надзвичайно простий формат обміну даними. Це мабуть буде найлегшим курсом
-"Learn X in Y Minutes".
-
-В загальному випадку в JSON немає коментарів, але більшість парсерів дозволяють
-використовувати коментарі в С-стилі(//, /\* \*/). Можна залишити кому після останнього
-поля, але все-таки краще такого уникати для кращої сумісності
-
-```json
-{
- "ключ": "значеннь",
-
- "ключі": "завжди мають бути обгорнуті в подвійні лапки",
- "числа": 0,
- "рядки": "Пρивет, світ. Допускаються всі unicode-символи разом з \"екрануванням\".",
- "логічний тип": true,
- "нічого": null,
-
- "велике число": 1.2e+100,
-
- "об’єкти": {
- "коментар": "Більшість ваших структур будуть складатися з об’єктів",
-
- "масив": [0, 1, 2, 3, "масиви можуть містити будь-які типи", 5],
-
- "інший об’єкт": {
- "коментра": "Об’єкти можуть містити інші об’єкти. Це дуже корисно."
- }
- },
-
- "безглуздя": [
- {
- "джерело калія": ["банани"]
- },
- [
- [1, 0, 0, 0],
- [0, 1, 0, 0],
- [0, 0, 1, "нео"],
- [0, 0, 0, 1]
- ]
- ],
-
- "альтернативнтй стиль": {
- "коментар": "Гляньте!"
- , "позиція коми": "неважлива, поки вона знаходиться до наступного поля"
- , "інший коментар": "класно"
- },
-
- "Це було не довго": "І ви справилист. Тепер ви знаєте все про JSON."
-}
-
-Одиничний масив значень теж є правильним JSON
-
-[1, 2, 3, "text", true]
-
-
-```