HTML Diff
0 added 0 removed
Original 2026-01-01
Modified 2026-02-21
1 <p><a>#подборки</a></p>
1 <p><a>#подборки</a></p>
2 <ul><li>6 июл 2021</li>
2 <ul><li>6 июл 2021</li>
3 <li>0</li>
3 <li>0</li>
4 </ul><p>О скольких из них слышали вы? Зовём познакомиться и даже попрограммировать на каждом.</p>
4 </ul><p>О скольких из них слышали вы? Зовём познакомиться и даже попрограммировать на каждом.</p>
5 <p>Полина Суворова для Skillbox</p>
5 <p>Полина Суворова для Skillbox</p>
6 <p>Фулстек-разработчик. Любимый стек: Java + Angular, но в хорошей компании готова писать хоть на языке Ада.</p>
6 <p>Фулстек-разработчик. Любимый стек: Java + Angular, но в хорошей компании готова писать хоть на языке Ада.</p>
7 <p><strong><strong>об авторе</strong></strong></p>
7 <p><strong><strong>об авторе</strong></strong></p>
8 <p>Архитектор решений в IT-компании из списка Fortune 100. Любимым занятием называет свою работу. Старается учиться чему-то полезному каждый день.</p>
8 <p>Архитектор решений в IT-компании из списка Fortune 100. Любимым занятием называет свою работу. Старается учиться чему-то полезному каждый день.</p>
9 <p>Кто бы мог подумать, что наши любимые смайлики могут сгодиться на что-то посерьёзнее оживления чатов? Однако ж нашлись таланты, которые придумали целые языки программирования на эмодзи и эмотиконах.</p>
9 <p>Кто бы мог подумать, что наши любимые смайлики могут сгодиться на что-то посерьёзнее оживления чатов? Однако ж нашлись таланты, которые придумали целые языки программирования на эмодзи и эмотиконах.</p>
10 <p>Большинство из них относятся к <a>эзотерическим языкам</a> - эсолангам (от англ. esolang), но разобраться в них проще, чем во многих других эсолангах.</p>
10 <p>Большинство из них относятся к <a>эзотерическим языкам</a> - эсолангам (от англ. esolang), но разобраться в них проще, чем во многих других эсолангах.</p>
11 <p>Эзотерические языки плохо подходят для решения бизнес-задач. Их создают, чтобы доказать саму возможность реализации какой-то идеи ("подтвердить концепцию", от англ. proof of concept), а то и вовсе шутки ради.</p>
11 <p>Эзотерические языки плохо подходят для решения бизнес-задач. Их создают, чтобы доказать саму возможность реализации какой-то идеи ("подтвердить концепцию", от англ. proof of concept), а то и вовсе шутки ради.</p>
12 <p><strong>примечание переводчика</strong></p>
12 <p><strong>примечание переводчика</strong></p>
13 <p>Эсоланг может быть даже своего рода произведением искусства. Например, программа на Piet<a>выглядит</a>как абстрактный рисунок. Язык этот назван в честь Пита Мондриана - одного из родоначальников абстрактной живописи.</p>
13 <p>Эсоланг может быть даже своего рода произведением искусства. Например, программа на Piet<a>выглядит</a>как абстрактный рисунок. Язык этот назван в честь Пита Мондриана - одного из родоначальников абстрактной живописи.</p>
14 <p><strong>О самых сложных эсолангах</strong>читайте в <a>другой моей статье</a>. В этой же речь пойдёт о пяти таких, в которых можно применять эмодзи:</p>
14 <p><strong>О самых сложных эсолангах</strong>читайте в <a>другой моей статье</a>. В этой же речь пойдёт о пяти таких, в которых можно применять эмодзи:</p>
15 <p>1) Emoji;</p>
15 <p>1) Emoji;</p>
16 <p>2) Emojicode;</p>
16 <p>2) Emojicode;</p>
17 <p>3) Emoji-gramming;</p>
17 <p>3) Emoji-gramming;</p>
18 <p>4) EmojiCoder;</p>
18 <p>4) EmojiCoder;</p>
19 <p>5) Emotinomicon.</p>
19 <p>5) Emotinomicon.</p>
20 <p>Это эсоланг на основе стека. Эмодзи здесь отвечают за команды (токены), которые этим самым стеком управляют. И их не так уж много, а все остальные символы токенами не считаются.</p>
20 <p>Это эсоланг на основе стека. Эмодзи здесь отвечают за команды (токены), которые этим самым стеком управляют. И их не так уж много, а все остальные символы токенами не считаются.</p>
21 <p>Вот так на Emoji вывести на экран строку "Hello, World!"</p>
21 <p>Вот так на Emoji вывести на экран строку "Hello, World!"</p>
22 <p>Команда (токен) 💬 читает все символы до следующего 💬 и помещает их в стек, а токен ➡ выводит на экран его содержимое.</p>
22 <p>Команда (токен) 💬 читает все символы до следующего 💬 и помещает их в стек, а токен ➡ выводит на экран его содержимое.</p>
23 <p>Вот результат:</p>
23 <p>Вот результат:</p>
24 <p>Описание всех токенов языка Emoji:</p>
24 <p>Описание всех токенов языка Emoji:</p>
25 💬 Считывает строку до следующего символа 💬 и помещает её в стек ⛽ Считывает строку до следующего символа 🚘 и помещает её в стек (эти конструкции могут быть вложенными, в них можно хранить функции) ➡ Выводит на экран содержимое стека 🚲 Помещает в стек логическое значение True ("истина") 🚳 Помещает в стек логическое значение False ("ложь") 🚴 Инвертирует логическое значение в стеке (true преобразуется в false и наоборот) 👫 Складывает два числа из стека 👪 Перемножает два числа из стека 🌊 Вычитает из одного числа в стеке второе число из стека 🍴 Делит одно число в стеке на другое 💸 Делит одно число в стеке на другое и возвращает остаток от деления 💿 Округляет число до ближайшего большего целого 📥 Округляет число из стека до ближайшего меньшего целого 📤 Округляет число из стека до ближайшего большего целого 🐂 Переводит число в шестнадцатеричный вид 🔢 Преобразует строку в число 👬 Проверяет два числа на равенство 🐣 Проверяет, что одно число меньше другого 🐔 Проверяет, что одно число больше другого 🔚 Извлекает логическое значение из стека. Если оно равно false, пропускает код до следующего символа 🐧. 🔙 Если при предыдущей команде 🔚 код не был пропущен, пропускает код до следующего 🐧. 🔃 Берёт две строки из стека. Интерпретирует первую как команду и выполняет её. Дальше проверяет второй логический параметр, и если он равен true, выполняет как команду вторую строку из стека. Затем всё повторяется 👥 Дублирует содержимое стека 🔣 Возвращает числовой код символа 🔍 Возвращает символ по его числовому коду 📲 Принимает два параметра-объекта, создаёт новую переменную и считает второй параметр её именем, а первый - её значением 📱 Принимает один параметр-объект и возвращает значение из переменной с именем, равным этому параметру 📃 Возвращает длину строки (или массива) из стека ✂ Принимает строку и два числа. Возвращает подстроку, начиная с символа с номером, равным первому числу (включительно), и заканчивая символом с номером, равным второму числу (не включая сам этот символ) 🏃 Вычисляет выражение в строке 📚 Создаёт пустой массив 📌 Берёт массив и объект и добавляет этот объект в конец массива. Ничего не возвращает, так что если вам нужен этот изменённый массив, сохраните его в переменную до вызова команды 🔑 Принимает массив (или строку) и индекс. Возвращает значение элемента с этим индексом 🔀 Меняет местами два элемента в стеке 🔊 Преобразует все символы строки к верхнему регистру 🔉 Преобразует все символы строки к нижнему региструИсточник:<a>gist.github.com</a><p>Позапускать свои программы на Emoji можно<a>здесь</a>.</p>
25 💬 Считывает строку до следующего символа 💬 и помещает её в стек ⛽ Считывает строку до следующего символа 🚘 и помещает её в стек (эти конструкции могут быть вложенными, в них можно хранить функции) ➡ Выводит на экран содержимое стека 🚲 Помещает в стек логическое значение True ("истина") 🚳 Помещает в стек логическое значение False ("ложь") 🚴 Инвертирует логическое значение в стеке (true преобразуется в false и наоборот) 👫 Складывает два числа из стека 👪 Перемножает два числа из стека 🌊 Вычитает из одного числа в стеке второе число из стека 🍴 Делит одно число в стеке на другое 💸 Делит одно число в стеке на другое и возвращает остаток от деления 💿 Округляет число до ближайшего большего целого 📥 Округляет число из стека до ближайшего меньшего целого 📤 Округляет число из стека до ближайшего большего целого 🐂 Переводит число в шестнадцатеричный вид 🔢 Преобразует строку в число 👬 Проверяет два числа на равенство 🐣 Проверяет, что одно число меньше другого 🐔 Проверяет, что одно число больше другого 🔚 Извлекает логическое значение из стека. Если оно равно false, пропускает код до следующего символа 🐧. 🔙 Если при предыдущей команде 🔚 код не был пропущен, пропускает код до следующего 🐧. 🔃 Берёт две строки из стека. Интерпретирует первую как команду и выполняет её. Дальше проверяет второй логический параметр, и если он равен true, выполняет как команду вторую строку из стека. Затем всё повторяется 👥 Дублирует содержимое стека 🔣 Возвращает числовой код символа 🔍 Возвращает символ по его числовому коду 📲 Принимает два параметра-объекта, создаёт новую переменную и считает второй параметр её именем, а первый - её значением 📱 Принимает один параметр-объект и возвращает значение из переменной с именем, равным этому параметру 📃 Возвращает длину строки (или массива) из стека ✂ Принимает строку и два числа. Возвращает подстроку, начиная с символа с номером, равным первому числу (включительно), и заканчивая символом с номером, равным второму числу (не включая сам этот символ) 🏃 Вычисляет выражение в строке 📚 Создаёт пустой массив 📌 Берёт массив и объект и добавляет этот объект в конец массива. Ничего не возвращает, так что если вам нужен этот изменённый массив, сохраните его в переменную до вызова команды 🔑 Принимает массив (или строку) и индекс. Возвращает значение элемента с этим индексом 🔀 Меняет местами два элемента в стеке 🔊 Преобразует все символы строки к верхнему регистру 🔉 Преобразует все символы строки к нижнему региструИсточник:<a>gist.github.com</a><p>Позапускать свои программы на Emoji можно<a>здесь</a>.</p>
26 <p>Emojicode - это объектно-ориентированный язык. Программировать на нём забавно, потому что в коде можно использовать эмодзи.</p>
26 <p>Emojicode - это объектно-ориентированный язык. Программировать на нём забавно, потому что в коде можно использовать эмодзи.</p>
27 <p>Это ещё и строго типизированный язык с первоклассной поддержкой классов.</p>
27 <p>Это ещё и строго типизированный язык с первоклассной поддержкой классов.</p>
28 <p>Этот авторский каламбур означает, что в Emojicode запросто можно создавать и использовать классы.</p>
28 <p>Этот авторский каламбур означает, что в Emojicode запросто можно создавать и использовать классы.</p>
29 <p>Создатель языка ненавидит ошибки типа NPE (null pointer exception) - они возникают при попытке обратиться к объекту, которому не присвоено значение. Поэтому в Emojicode каждую переменную экземпляра класса (<a>instance variable</a>) нужно сразу инициализировать, чтобы не словить ошибку при компиляции.</p>
29 <p>Создатель языка ненавидит ошибки типа NPE (null pointer exception) - они возникают при попытке обратиться к объекту, которому не присвоено значение. Поэтому в Emojicode каждую переменную экземпляра класса (<a>instance variable</a>) нужно сразу инициализировать, чтобы не словить ошибку при компиляции.</p>
30 <p>А это фрагмент кода для вывода строки "Hello, World!" на этом языке:</p>
30 <p>А это фрагмент кода для вывода строки "Hello, World!" на этом языке:</p>
31 🏁 🍇 😀 🔤Hello, World!🔤❗️ 🍉<p>И результат выполнения:</p>
31 🏁 🍇 😀 🔤Hello, World!🔤❗️ 🍉<p>И результат выполнения:</p>
32 <p>Официальная документация по Emojicode<a>здесь</a>, а попрограммировать на нём можно<a>тут</a>.</p>
32 <p>Официальная документация по Emojicode<a>здесь</a>, а попрограммировать на нём можно<a>тут</a>.</p>
33 <p>Emoji-gramming - ещё один эсоланг с эмодзи. В нём всего 25 переменных и четыре команды - те и другие представлены эмодзи.</p>
33 <p>Emoji-gramming - ещё один эсоланг с эмодзи. В нём всего 25 переменных и четыре команды - те и другие представлены эмодзи.</p>
34 <p>Константы в Emoji-gramming задаются символами-сердечками:</p>
34 <p>Константы в Emoji-gramming задаются символами-сердечками:</p>
35 <p>💔 - это 0</p>
35 <p>💔 - это 0</p>
36 <p>💜 - это 1</p>
36 <p>💜 - это 1</p>
37 <p>💕 - это 2</p>
37 <p>💕 - это 2</p>
38 <p>💞 - это 4</p>
38 <p>💞 - это 4</p>
39 <p>💖 - это 8</p>
39 <p>💖 - это 8</p>
40 <p>Символ микрофона (🎤) отвечает за поток входных данных, а громкоговоритель (📢) обозначает вывод на экран. Выглядит логично, правда? 😃</p>
40 <p>Символ микрофона (🎤) отвечает за поток входных данных, а громкоговоритель (📢) обозначает вывод на экран. Выглядит логично, правда? 😃</p>
41 <p>Ниже - код на Emoji-gramming, который выводит на экран "Hello, World!":</p>
41 <p>Ниже - код на Emoji-gramming, который выводит на экран "Hello, World!":</p>
42 😊🕐💖 😇🕐🕐 😊🕑🕐 😇🕑🕑 😊🕒🕑 😇🕒🕒 😊♈💖 😇♈🕒 😊📢♈ 😊♈💜 😇♈💞 😇♈🕑 😇♈🕒 😊📢♈ 😊♉💞 😇♉💖 😇♉🕑 😇♉🕒 😊📢♉ 😊📢♉ 😊♊💜 😇♊💕 😇♊💞 😇♊💖 😇♊🕑 😇♊🕒 😊📢♊ 😊♈💞 😇♈💖 😇♈🕑 😊📢♈ 😊📢🕑 😊♈💜 😇♈💕 😇♈💞 😇♈🕐 😇♈🕒 😊📢♈ 😊📢♊ 😊♈💕 😇♈🕐 😇♈🕑 😇♈🕒 😊📢♈ 😊📢♉ 😊♈💞 😇♈🕑 😇♈🕒 😊📢♈ 😊♈💜 😇♈🕑 😊📢♈ 😊♈💖 😇♈💕 😊📢♈Источник:<a>gist.github.com</a><p>А вот и результат:</p>
42 😊🕐💖 😇🕐🕐 😊🕑🕐 😇🕑🕑 😊🕒🕑 😇🕒🕒 😊♈💖 😇♈🕒 😊📢♈ 😊♈💜 😇♈💞 😇♈🕑 😇♈🕒 😊📢♈ 😊♉💞 😇♉💖 😇♉🕑 😇♉🕒 😊📢♉ 😊📢♉ 😊♊💜 😇♊💕 😇♊💞 😇♊💖 😇♊🕑 😇♊🕒 😊📢♊ 😊♈💞 😇♈💖 😇♈🕑 😊📢♈ 😊📢🕑 😊♈💜 😇♈💕 😇♈💞 😇♈🕐 😇♈🕒 😊📢♈ 😊📢♊ 😊♈💕 😇♈🕐 😇♈🕑 😇♈🕒 😊📢♈ 😊📢♉ 😊♈💞 😇♈🕑 😇♈🕒 😊📢♈ 😊♈💜 😇♈🕑 😊📢♈ 😊♈💖 😇♈💕 😊📢♈Источник:<a>gist.github.com</a><p>А вот и результат:</p>
43 <p>EmojiCoder создали Джереми и Сара Натансон (Jeremy Nathanson, Sarah Nathanson). Это эзотерический язык, в котором и команды, и их аргументы записываются в виде эмодзи.</p>
43 <p>EmojiCoder создали Джереми и Сара Натансон (Jeremy Nathanson, Sarah Nathanson). Это эзотерический язык, в котором и команды, и их аргументы записываются в виде эмодзи.</p>
44 <p>В языке есть эмодзи-обозначения для нуля и единицы. Остальные символы кодируются их комбинациями.</p>
44 <p>В языке есть эмодзи-обозначения для нуля и единицы. Остальные символы кодируются их комбинациями.</p>
45 <p>Чтобы понять, как интерпретировать комбинацию (символ это из набора ASCII или же число), перед ней добавляют модификатор - тоже в виде эмодзи:</p>
45 <p>Чтобы понять, как интерпретировать комбинацию (символ это из набора ASCII или же число), перед ней добавляют модификатор - тоже в виде эмодзи:</p>
46 🔡: Символ ASCII с кодом от 0 до 255 🔢: Целое число от 0 до 255<p>Возьмём, например, такую последовательность: 🌚🌝🌚🌚🌝🌚🌚🌚, или 01001000 в двоичном виде.</p>
46 🔡: Символ ASCII с кодом от 0 до 255 🔢: Целое число от 0 до 255<p>Возьмём, например, такую последовательность: 🌚🌝🌚🌚🌝🌚🌚🌚, или 01001000 в двоичном виде.</p>
47 <p>Если поставить перед ней 🔢, то это будет просто целое число 72. А если указать 🔡, то уже символ с кодом 72 (по таблице ASCII), то есть латинская заглавная буква H.</p>
47 <p>Если поставить перед ней 🔢, то это будет просто целое число 72. А если указать 🔡, то уже символ с кодом 72 (по таблице ASCII), то есть латинская заглавная буква H.</p>
48 <p><strong>Примечание переводчика</strong></p>
48 <p><strong>Примечание переводчика</strong></p>
49 <p><strong>Как из нулей и единиц вдруг получилось 72?</strong></p>
49 <p><strong>Как из нулей и единиц вдруг получилось 72?</strong></p>
50 <p>В обычной жизни мы имеем дело с числами в <strong>десятичной</strong><strong>системе счисления</strong>: они получаются из комбинаций десяти цифр от нуля до девяти. Каждое число можно представить в виде суммы произведений его цифр с десяткой в степени, которая зависит от разряда, где стоит цифра (первый разряд справа считается нулевым).</p>
50 <p>В обычной жизни мы имеем дело с числами в <strong>десятичной</strong><strong>системе счисления</strong>: они получаются из комбинаций десяти цифр от нуля до девяти. Каждое число можно представить в виде суммы произведений его цифр с десяткой в степени, которая зависит от разряда, где стоит цифра (первый разряд справа считается нулевым).</p>
51 <p>Например: 72 = 7*101 + 2*100, а 372 = 3*102 +7*101+2*100.</p>
51 <p>Например: 72 = 7*101 + 2*100, а 372 = 3*102 +7*101+2*100.</p>
52 <p>Если ограничиться только двумя цифрами (0 и 1), получим<strong>двоичную систему счисления</strong>. В ней число представляется точно так же, только вместо степеней десятки - степени двойки.</p>
52 <p>Если ограничиться только двумя цифрами (0 и 1), получим<strong>двоичную систему счисления</strong>. В ней число представляется точно так же, только вместо степеней десятки - степени двойки.</p>
53 <p>Вот так: 01001000 = 0*27 + 1*26 + 0*25 + 0*24 + 1*23 + 0*22 + 0*21 + 0*20 = 0 + 64 + 0 + 0 + 8 + 0 + 0 + 0 = 72.</p>
53 <p>Вот так: 01001000 = 0*27 + 1*26 + 0*25 + 0*24 + 1*23 + 0*22 + 0*21 + 0*20 = 0 + 64 + 0 + 0 + 8 + 0 + 0 + 0 = 72.</p>
54 <p>Для вывода на экран в EmojiCoder применяется эмодзи "Машущая рука" (👋). Каждую команду нужно писать на новой строке.</p>
54 <p>Для вывода на экран в EmojiCoder применяется эмодзи "Машущая рука" (👋). Каждую команду нужно писать на новой строке.</p>
55 <p>Теперь мы знаем всё, чтобы вывести на экран строку "Hello, World!":</p>
55 <p>Теперь мы знаем всё, чтобы вывести на экран строку "Hello, World!":</p>
56 👋🔡🌚🌝🌚🌚🌝🌚🌚🌚 //Печатает символ H 👋🔡🌚🌝🌝🌚🌚🌝🌚🌝 //Печатает символ e 👋🔡🌚🌝🌝🌚🌝🌝🌚🌚 //Печатает символ l 👋🔡🌚🌝🌝🌚🌝🌝🌚🌚 //Печатает символ l 👋🔡🌚🌝🌝🌚🌝🌝🌝🌝 //Печатает символ o 👋🔡🌚🌚🌝🌚🌝🌝🌚🌚 //Печатает символ запятой (,) 👋🔡🌚🌚🌝🌚🌚🌚🌚🌚 //Печатает пробел 👋🔡🌚🌝🌝🌝🌚🌝🌝🌝 //Печатает символ w 👋🔡🌚🌝🌝🌚🌝🌝🌝🌝 //Печатает символ o 👋🔡🌚🌝🌝🌝🌚🌚🌝🌚 //Печатает символ r 👋🔡🌚🌝🌝🌚🌝🌝🌚🌚 //Печатает символ l 👋🔡🌚🌝🌝🌚🌚🌝🌚🌚 //Печатает символ d 👋🔡🌚🌚🌝🌚🌚🌚🌚🌝 //Печатает символ !<p>Вот результат:</p>
56 👋🔡🌚🌝🌚🌚🌝🌚🌚🌚 //Печатает символ H 👋🔡🌚🌝🌝🌚🌚🌝🌚🌝 //Печатает символ e 👋🔡🌚🌝🌝🌚🌝🌝🌚🌚 //Печатает символ l 👋🔡🌚🌝🌝🌚🌝🌝🌚🌚 //Печатает символ l 👋🔡🌚🌝🌝🌚🌝🌝🌝🌝 //Печатает символ o 👋🔡🌚🌚🌝🌚🌝🌝🌚🌚 //Печатает символ запятой (,) 👋🔡🌚🌚🌝🌚🌚🌚🌚🌚 //Печатает пробел 👋🔡🌚🌝🌝🌝🌚🌝🌝🌝 //Печатает символ w 👋🔡🌚🌝🌝🌚🌝🌝🌝🌝 //Печатает символ o 👋🔡🌚🌝🌝🌝🌚🌚🌝🌚 //Печатает символ r 👋🔡🌚🌝🌝🌚🌝🌝🌚🌚 //Печатает символ l 👋🔡🌚🌝🌝🌚🌚🌝🌚🌚 //Печатает символ d 👋🔡🌚🌚🌝🌚🌚🌚🌚🌝 //Печатает символ !<p>Вот результат:</p>
57 <p>Полный список команд EmojiCoder смотрите<a>здесь</a>.</p>
57 <p>Полный список команд EmojiCoder смотрите<a>здесь</a>.</p>
58 <p>Это стековый язык программирования (как и Emoji, о котором мы говорили выше). В нём можно использовать как эмодзи, так и эмотиконы. Придумал и создал его Конор О’Брайен (<a>Conor O’Brien</a>).</p>
58 <p>Это стековый язык программирования (как и Emoji, о котором мы говорили выше). В нём можно использовать как эмодзи, так и эмотиконы. Придумал и создал его Конор О’Брайен (<a>Conor O’Brien</a>).</p>
59 <p>Вот как вывести строку "Hello, World!" на Emotinomicon:</p>
59 <p>Вот как вывести строку "Hello, World!" на Emotinomicon:</p>
60 <p>Объясним назначение токенов:</p>
60 <p>Объясним назначение токенов:</p>
61 😭 - начало строки !dlroW ,olleH - строка с обратным порядком символов 😲 - конец строки ⏪ - начало цикла ⏬ - извлекает из стека и выводит на экран очередной символ строки ⏩ - конец цикла<p><strong>Примечание переводчика</strong></p>
61 😭 - начало строки !dlroW ,olleH - строка с обратным порядком символов 😲 - конец строки ⏪ - начало цикла ⏬ - извлекает из стека и выводит на экран очередной символ строки ⏩ - конец цикла<p><strong>Примечание переводчика</strong></p>
62 <p><strong>Почему строка набрана задом наперёд?</strong></p>
62 <p><strong>Почему строка набрана задом наперёд?</strong></p>
63 <p>Потому что для стека действует правило "последним пришёл - первым ушёл". Последним в стек добавили символ H, так что он будет выведен первым, затем e и так далее до символа !.</p>
63 <p>Потому что для стека действует правило "последним пришёл - первым ушёл". Последним в стек добавили символ H, так что он будет выведен первым, затем e и так далее до символа !.</p>
64 <p>И, наконец, результат:</p>
64 <p>И, наконец, результат:</p>
65 <p>Поиграйтесь с выводом своих строк. Вот вам<a>удобная среда для выполнения программ на Emotinomicone</a>(нужные эмодзи там всегда под рукой, не приходится копипастить их откуда-то ещё).</p>
65 <p>Поиграйтесь с выводом своих строк. Вот вам<a>удобная среда для выполнения программ на Emotinomicone</a>(нужные эмодзи там всегда под рукой, не приходится копипастить их откуда-то ещё).</p>
66 <p>Это эмодзи-диалект<a>эсоланга Brainfuck</a>(в переводе "Вынос мозга").</p>
66 <p>Это эмодзи-диалект<a>эсоланга Brainfuck</a>(в переводе "Вынос мозга").</p>
67 <p>Emotifuck написан на языке Rust двумя энтузиастами под никами<a>Romulus10</a>и <a>Insipx</a>. По словам разработчиков, их язык обладает безопасным доступом к памяти.</p>
67 <p>Emotifuck написан на языке Rust двумя энтузиастами под никами<a>Romulus10</a>и <a>Insipx</a>. По словам разработчиков, их язык обладает безопасным доступом к памяти.</p>
68 <p>Ниже список команд Emotifuck и соответствующие им символы языка Brainfuck:</p>
68 <p>Ниже список команд Emotifuck и соответствующие им символы языка Brainfuck:</p>
69 🔥 - Сдвинуть вправо (&gt;) 💯 - Сдвинуть влево (&lt;) 💩 - Уменьшить на 1 (-) [ну почему они не сделали ЭТО командой вывода ;)] 😂 - Увеличить на 1 (+) 💞 - Вывести (.) 🙏 - Ввести (,) 🌚 - Прыгнуть вперёд ([) 🐸 - Прыгнуть назад (])<p><strong>примечание переводчика</strong></p>
69 🔥 - Сдвинуть вправо (&gt;) 💯 - Сдвинуть влево (&lt;) 💩 - Уменьшить на 1 (-) [ну почему они не сделали ЭТО командой вывода ;)] 😂 - Увеличить на 1 (+) 💞 - Вывести (.) 🙏 - Ввести (,) 🌚 - Прыгнуть вперёд ([) 🐸 - Прыгнуть назад (])<p><strong>примечание переводчика</strong></p>
70 <p>Под программу на этом языке вначале выделяется 30 000 ячеек, в которых лежат нули. Вдоль множества ячеек перемещается указатель. Команды "сдвинуть вправо" и "сдвинуть влево" двигают этот указатель на одну ячейку вправо или влево, соответственно.</p>
70 <p>Под программу на этом языке вначале выделяется 30 000 ячеек, в которых лежат нули. Вдоль множества ячеек перемещается указатель. Команды "сдвинуть вправо" и "сдвинуть влево" двигают этот указатель на одну ячейку вправо или влево, соответственно.</p>
71 <p>С прыжками вперёд и назад чуть хитрее: они перемещают указатель вперёд (вправо) или назад (влево) до следующего<strong>парного</strong>символа: для [ парным будет символ ] и наоборот. Причём команда сработает, только если в текущей ячейке будет лежать не ноль.</p>
71 <p>С прыжками вперёд и назад чуть хитрее: они перемещают указатель вперёд (вправо) или назад (влево) до следующего<strong>парного</strong>символа: для [ парным будет символ ] и наоборот. Причём команда сработает, только если в текущей ячейке будет лежать не ноль.</p>
72 <p>Код для вывода "Hello, World!" на Brainfuck выглядит так:</p>
72 <p>Код для вывода "Hello, World!" на Brainfuck выглядит так:</p>
73 ++++++++++[&gt;+++++++&gt;++++++++++&gt;+++&gt;+&lt;&lt;&lt;&lt;-]&gt;++.&gt;+.+++++++..+++.&gt;++.&lt;&lt;+++++++++++++++.&gt;.+++.------.--------.&gt;+.&gt;.<p>С помощью словарика выше переведём это на Emotifuck и получим:</p>
73 ++++++++++[&gt;+++++++&gt;++++++++++&gt;+++&gt;+&lt;&lt;&lt;&lt;-]&gt;++.&gt;+.+++++++..+++.&gt;++.&lt;&lt;+++++++++++++++.&gt;.+++.------.--------.&gt;+.&gt;.<p>С помощью словарика выше переведём это на Emotifuck и получим:</p>
74 😂😂😂😂😂😂😂😂🌚🔥😂😂😂😂🌚🔥😂😂🔥😂😂😂🔥😂😂😂🔥😂💯💯💯💯💩🐸🔥😂🔥😂🔥💩🔥🔥😂🌚💯🐸💯💩🐸🔥🔥💞🔥💩💩💩💞😂😂😂😂😂😂😂💞💞😂😂😂💞🔥🔥💞💯💩💞💯💞😂😂😂💞💩💩💩💩💩💩💞💩💩💩💩💩💩💩💩💞🔥🔥😂💞🔥😂😂💞<p>Вот и всё, ребята! 🤗</p>
74 😂😂😂😂😂😂😂😂🌚🔥😂😂😂😂🌚🔥😂😂🔥😂😂😂🔥😂😂😂🔥😂💯💯💯💯💩🐸🔥😂🔥😂🔥💩🔥🔥😂🌚💯🐸💯💩🐸🔥🔥💞🔥💩💩💩💞😂😂😂😂😂😂😂💞💞😂😂😂💞🔥🔥💞💯💩💞💯💞😂😂😂💞💩💩💩💩💩💩💞💩💩💩💩💩💩💩💩💞🔥🔥😂💞🔥😂😂💞<p>Вот и всё, ребята! 🤗</p>
75 <p><strong>Документацию и дополнительные материалы ищите тут:</strong></p>
75 <p><strong>Документацию и дополнительные материалы ищите тут:</strong></p>
76 <a><b>Бесплатный курс по Python ➞</b>Мини-курс для новичков и для опытных кодеров. 4 крутых проекта в портфолио, живое общение со спикером. Кликните и узнайте, чему можно научиться на курсе. Смотреть программу</a>
76 <a><b>Бесплатный курс по Python ➞</b>Мини-курс для новичков и для опытных кодеров. 4 крутых проекта в портфолио, живое общение со спикером. Кликните и узнайте, чему можно научиться на курсе. Смотреть программу</a>