Блог* – Telegram
1.9K subscribers
3.46K photos
135 videos
15 files
3.69K links
Блог со звёздочкой.

Много репостов, немножко программирования.

Небольшое прикольное комьюнити: @decltype_chat_ptr_t
Автор: @insert_reference_here
Download Telegram
❤‍🔥1
Media is too big
VIEW IN TELEGRAM
Минутка занимательной лингвистики 😏
😁6🤡1
Блог* pinned «Чат*, у меня для вас задачка. Есть вот такое простенькое AST для подмножества арифметических выражений: enum Expr { Lit(i32), Neg(Box<Self>), Add(Box<Self>, Box<Self>), } (взял отсюда, да) Напишите код для вывода этих выражений так, чтобы:…»
this, my dudes
👍19😢5
Forwarded from shitposting 3.0 [+ dragons]
7🤯3🤔1
Forwarded from shitposting 3.0 [+ dragons]
14😁3👍1🔥1
Forwarded from shitposting 3.0 [+ dragons]
😁25🤯21
Вы спросите меня, люблю ли я мужчин.

Я отвечу, что да.

Особенно напечатанных на разноцветных узких кусочках бумаги.
😐133🥰1🤔1💩1🤡1
😒🤚 realityck
😏👉 borrowck
🥰51
😒🤚 Жать на ссылку
😏👉 Жать на фрукт в соковыжималке

#шитпостдлярепостапопячечной
👎8😁2👍1
Undercut — это буквально под-кат
😁6
Forwarded from TrapsWorld
😁13🥴3
Парочка #politota #meme подряд
Forwarded from левый движ 🥥
😭7😁5
Forwarded from Kamysh 5.0
На те мемос
🤡18😁7👍4🤮1
10🥰1🤮1
Чат*, а можете подсказать компьютерную мышь, у которой не дохнет колёсико? У моей нынешней одно из положений при прокручивании не даёт никакой реакции, а иногда даже при физическом прокручивании вниз прокручивает область на экране на одно деление вверх.
🤔6😢1🤡1
Блог*
Своё решение выложу вечером в пятницу
Итак, в чём же сложность данной задачи? В контекстной зависимости. Форматирование каждого терма зависит от того, в каком контексте он находится. Соответственно, для корректного форматирования нужно этот самый контекст передавать. Это также позволяет избежать смешения ответственности: каждый вариант сам отвечает за своё форматирование и не смотрит на внутренние термы, лишь прокидывает корректный контекст.

Что же в данном случае является контекстом? Знак перед термом. Причём важно то, какой именно: плюс или минус. Также важно, что это опциональное значение: на верхнем уровне никаких знаков перед выражением нет.

Положительный литерал не нужно обрамлять в скобки, отрицательный литерал — нужно, но только если перед ним есть знак. Или, иными словами, отрицательный литерал не нужно обрамлять в скобки только в том случае, если он является первым слагаемым в выражении целиком — или уже отделён скобками.

Отрицание схоже с отрицательным литералом: только первое слагаемое не нужно обрамлять скобками, в остальных случаях надо. При форматированию вложенному терму в качестве контекста передаётся знак минус.

Сложение — тот случай, когда нужно различать плюс от минуса в переданном контексте. В случае плюса или отсутствующего знака можно форматировать как есть, а в случае минуса перед сложением нужно ставить скобки. Так как это сложение, для второго слагаемого контекстом всегда является знак плюс. Для первого слагаемого немного сложнее: если скобки не ставятся, то контекст пробрасывается (так как знак перед термом тот же самый), а если ставятся, то, очевидно, никаких знаков перед первым слагаемым нет и в качестве контекста передаётся None.

Код
🤯6🤮4👍2🤔21