Rand Stats

Russian

zef:slavenskoj

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+)

Ввод/вывод

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

Константы

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

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

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

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

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

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

Округление

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

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

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

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

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

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

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

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

Дата и время

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

use Russian;

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

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

Лицензия

Artistic-2.0

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

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