Skip to content

Module for Raku programming in Russian. Модуль русского языка для программирования на Raku.

License

Notifications You must be signed in to change notification settings

raku-multilingual/raku-russian

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Russian - русский язык для Raku

English summary: This is a Russian language module for Raku programming, providing over 200 Russian function names that cover all aspects of the Raku language. It includes both heritage computing terminology of the Soviet-era as well as modern terms, allowing Russian speakers to write Raku code in their native language. This first version has incomplete coverage, due to existing limitations, expect refinements and changes in future versions as we move towards complete functionality and true multilingual programming. Your input is welcome, see https://github.com/raku-multilingual/raku-russian

Модуль русского языка для программирования на Raku. Включает более 200 функций, охватывающих все аспекты языка Raku, с поддержкой как вычислительной терминологии советского времени, так и терминологии современных языков программирования. Версия разработки 0.0.1, ожидайте доработок и изменений в будущих версиях. Эта первая версия имеет неполное покрытие из-за существующих ограничений. Ожидайте доработок и изменений в будущих версиях . Ваш вклад приветствуется, см. https://github.com/raku-multilingual/raku-russian

Примеры использования

Функциональное программирование

use Russian;

my @числа = 1..10;
my @квадраты = отобразить({ $_ ** 2 }, @числа);
my @чётные = фильтровать({ $_ %% 2 }, @числа);
my $сумма = свернуть({ $^a + $^b }, @числа);

скажи "Квадраты: @квадраты[]";
скажи "Чётные: @чётные[]";
скажи "Сумма: $сумма";
use Russian;

# Создаём алгоритм вычисления факториала
my &факториал = алгоритм(-> $n {
    $n <= 1 ?? 1 !! $n * факториал($n - 1)
});

# Используем счётчик
скажи "Счётчик: ", счетчик(), счетчик(), счетчик();

# Работа с ЭВМ
скажи "Архитектура ЭВМ: ", архитектура();
use Russian;

# Читаем и обрабатываем файл
my $файл = открой("данные.txt");
my @строки = [];
while читай($файл) -> $строка {
    добавь(@строки, обрежь($строка));
}
закрой($файл);

# Анализируем данные
my @числа = отобразить({ число($_) }, @строки);
скажи "Минимум: ", минимум(@числа);
скажи "Максимум: ", максимум(@числа);
скажи "Среднее: ", среднее(@числа);
use Russian;

# Параллельная обработка
my @результаты = параллельно(1..100, -> $n {
    корень($n) + логарифм($n)
});

# Использование обещаний
my $обещание1 = обещание({ спи(1); "готово!" });
my $обещание2 = обещание({ спи(2); "тоже готово!" });

скажи ждать($обещание1);
скажи ждать($обещание2);

Важное замечание

Из-за известной проблемы в Rakudo (GitHub issue #2404), полноценные грамматические сланги пока не работают. Данная реализация использует механизм EXPORT для предоставления русских функций, что работает надёжно и покрывает практически весь функционал Raku.

Полный список функций (200+)

Ввод/вывод

  • скажи → say
  • печать → print
  • вывод → put
  • ввод, получи → get
  • строки → lines
  • слова → words
  • подсказка, запрос → prompt
  • предупреди → warn
  • заметь → note

Управление потоком

  • умри, ошибка → die
  • выход → exit
  • прерви → last
  • следующий → next
  • повтори → redo
  • продолжи → proceed
  • успех → succeed
  • провал → fail

Константы

  • истина, ИСТИНА, правда, да → True
  • ложь, ЛОЖЬ, неправда, нет → False
  • пусто, нуль, ничто → Nil
  • любой → Any
  • бесконечность → Inf
  • НеЧисло → NaN
  • пи → π
  • е → e (число Эйлера)
  • тау → τ (2π)

Преобразование типов

  • строка, текст → преобразование в строку
  • число → преобразование в число
  • целое → преобразование в целое
  • дробное → преобразование в Num
  • рациональное → преобразование в Rat
  • комплексное → создание комплексного числа
  • булево, логическое → преобразование в Bool

Математические функции

Основные операции

  • сумма → sum
  • произведение → product
  • минимум → min
  • максимум → max
  • среднее → average

Советская математическая терминология

  • корень → корень n-й степени (по умолчанию квадратный)
  • квадрат → возведение в квадрат
  • куб → возведение в куб
  • степень → возведение в степень
  • модуль → абсолютное значение
  • знак → знак числа

Тригонометрия

  • синус, косинус, тангенс, котангенс, секанс, косеканс
  • арксинус, арккосинус, арктангенс, арктангенс2
  • гиперсинус, гиперкосинус, гипертангенс

Логарифмы и экспоненты

  • логарифм → логарифм по любому основанию
  • натуральный_логарифм → ln
  • десятичный_логарифм → log₁₀
  • экспонента → eˣ

Округление

  • округли → round
  • потолок → ceiling
  • пол → floor
  • усечь → truncate

Операции с массивами/списками

  • длина, количество, размер → количество элементов
  • добавь → push
  • вставь → unshift
  • удали → pop
  • извлеки → shift
  • сортируй → sort
  • перемешай → shuffle
  • переверни → reverse
  • уникальные → unique
  • сплющи → flat
  • соедини, объедини → join
  • раздели, разбей → split
  • первый → first
  • последний, хвост → tail
  • голова → head
  • возьми → pick
  • выбери → roll
  • срез, кусок → slice

Операции с множествами

  • объединение → ∪ (union)
  • пересечение → ∩ (intersection)
  • разность → ∖ (difference)
  • симм_разность → ⊖ (symmetric difference)

Операции со строками

  • обрежь, обрежь_слева, обрежь_справа → trim
  • заглавные → uppercase
  • строчные → lowercase
  • заглавная → title case
  • слово_заглавное → word case
  • содержит → contains
  • начинается → starts-with
  • заканчивается → ends-with
  • замени → substitute
  • замени_все → substitute all
  • индекс, индекс_с_конца → index/rindex
  • подстрока → substr
  • символы → comb
  • коды → ords
  • из_кодов → chrs

Файловые операции (советские термины)

  • открой → open
  • закрой → close
  • читай → read line
  • читай_все → slurp
  • запиши → write line
  • печатай → print to file
  • смой → flush
  • позиция → tell
  • перейди → seek

Операции с каталогами

  • папка, каталог → dir
  • создай_папку → mkdir
  • удали_папку → rmdir
  • переименуй → rename
  • копируй → copy
  • переместить → move
  • удали_файл → unlink

Операции с путями

  • путь_существует → exists
  • это_файл → is file
  • это_папка → is directory
  • это_ссылка → is link
  • читаемый, записываемый, исполняемый → r/w/x
  • размер_файла → file size
  • время_изменения → modified time
  • абсолютный_путь → absolute path
  • относительный_путь → relative path
  • базовое_имя → basename
  • расширение → extension

Проверка типов

  • это_число, это_целое_число, это_дробь
  • это_строка, это_массив, это_список
  • это_хеш, это_словарь, это_множество
  • это_пара, это_диапазон, это_код
  • это_блок, это_регекс, это_булево
  • определено → defined
  • тип → WHAT
  • имя_типа → type name

Функциональное программирование

  • применить → apply
  • отобразить → map
  • фильтровать → grep/filter
  • свернуть → reduce/fold
  • свертка_слева → fold left
  • все → all
  • любой_из → any
  • ни_один → none
  • один → one
  • классифицировать → classify
  • группировать → categorize
  • застегнуть → zip
  • расстегнуть → unzip

Дата и время

  • сейчас → now (instant)
  • дата_время → DateTime.now
  • дата → Date.today
  • время → current time
  • спи → sleep

Случайные числа

  • случайное → random
  • случайное_целое → random integer
  • перемешать → shuffle
  • выбрать_случайно → pick random

Регулярные выражения

  • найди → match
  • найди_все → match all
  • соответствует → matches
  • выдели → extract match

Обработка исключений

  • попробуй → try
  • поймай → catch (с обработчиком)

Метапрограммирование

  • методы → methods
  • атрибуты → attributes
  • роли → roles
  • родители → parents
  • может → can
  • делает → does
  • является → isa

Параллельные вычисления (советская терминология)

  • обещание → promise
  • ждать → await
  • канал → channel
  • поставщик → supplier
  • параллельно → parallel map (race)
  • гиперпараллельно → hyper map

Системные операции

  • выполни → shell
  • запусти → run
  • среда → environment variable
  • аргументы → @*ARGS
  • программа → program name
  • процесс → process ID
  • пользователь → user
  • домашняя_папка → home directory
  • рабочая_папка → current directory
  • сменить_папку → change directory

Кодирование/декодирование

  • кодировать → encode
  • декодировать → decode
  • база64_код → base64 encode
  • база64_декод → base64 decode

Советские компьютерные термины (наследие)

  • ЭВМ → компьютер (электронно-вычислительная машина)
  • ОЗУ → оперативная память
  • ЦП → центральный процессор
  • алгоритм → создать алгоритм
  • подпрограмма → создать подпрограмму
  • процедура → создать процедуру
  • массив_данных → создать массив данных
  • таблица → создать таблицу (хеш)
  • счетчик → счётчик с состоянием
  • регистр → регистр с состоянием

Операторы как функции

  • Арифметические: сложить, вычесть, умножить, разделить, остаток, целочисленное_деление, возвести
  • Сравнение: равно, не_равно, больше, меньше, больше_равно, меньше_равно, сравнить
  • Логические: и, или, не, исключающее_или
  • Битовые: бит_и, бит_или, бит_не, бит_искл_или, сдвиг_влево, сдвиг_вправо

Пользовательские операторы (НОВОЕ!)

Модуль теперь поддерживает русские операторы, которые можно использовать инфиксно:

Арифметические операторы

  • плюс → + (сложение)
  • минус → - (вычитание)
  • умножить → * (умножение)
  • разделить → / (деление)
  • остаток → % (остаток от деления)
  • степень → ** (возведение в степень)

Операторы сравнения

  • равно → == (числовое равенство)
  • не_равно → != (числовое неравенство)
  • больше → > (больше)
  • меньше → < (меньше)
  • больше_равно → >= (больше или равно)
  • меньше_равно → <= (меньше или равно)

Строковые операторы

  • строка_равна → eq (строковое равенство)
  • строка_не_равна → ne (строковое неравенство)
  • строка_больше → gt (строка больше)
  • строка_меньше → lt (строка меньше)
  • соедини → ~ (конкатенация строк)

Логические операторы

  • и → && (логическое И)
  • или → || (логическое ИЛИ)
  • искл_или → ^^ (исключающее ИЛИ)
  • не → ! (логическое НЕ - префиксный)

Битовые операторы

  • бит_и → +& (побитовое И)
  • бит_или → +| (побитовое ИЛИ)
  • бит_искл_или → +^ (побитовое исключающее ИЛИ)
  • бит_не → +^ (побитовое НЕ - префиксный)
  • сдвиг_влево → +< (сдвиг влево)
  • сдвиг_вправо → +> (сдвиг вправо)

Операторы диапазона

  • до → .. (диапазон включительно)
  • до_искл → ..^ (диапазон исключая конец)

Пример использования:

use Russian;

скажи 5 плюс 3;                    # 8
скажи 10 минус 4;                  # 6
скажи 6 умножить 7;                # 42
скажи истина и ложь;               # False
скажи не истина;                   # False
скажи "Привет" соедини " мир!";   # Привет мир!
скажи 1 до 5;                      # 1..5

Доступ к специальным переменным

  • ошибка_текущая → $!
  • совпадение → $/
  • версия_раку → Raku version
  • версия_компилятора → compiler version
  • операционная_система → OS distribution
  • архитектура → architecture

Лицензия

Artistic-2.0

Участие в разработке

https://github.com/raku-multilingual/raku-russian

About

Module for Raku programming in Russian. Модуль русского языка для программирования на Raku.

Topics

Resources

License

Stars

Watchers

Forks

Languages