Forwarded from Сижу за решеткой в мемнúце сырой
Media is too big
VIEW IN TELEGRAM
Минутка занимательной лингвистики 😏
😁6🤡1
Блог*
Disclaimer: я эту задачу уже решил (и выложу решение немного позже), но я хочу посмотреть ваши решения. Если надо, могу скинуть тесты для проверки.
Своё решение выложу вечером в пятницу
🌚3
Вы спросите меня, люблю ли я мужчин.
Я отвечу, что да.
Особенно напечатанных на разноцветных узких кусочках бумаги.
Я отвечу, что да.
Особенно напечатанных на разноцветных узких кусочках бумаги.
😐13❤3🥰1🤔1💩1🤡1
👎8😁2👍1
Чат*, а можете подсказать компьютерную мышь, у которой не дохнет колёсико? У моей нынешней одно из положений при прокручивании не даёт никакой реакции, а иногда даже при физическом прокручивании вниз прокручивает область на экране на одно деление вверх.
🤔6😢1🤡1
Блог*
#music Продолжаю выкладывать саундтреки к играм вместо обзоров на них. Сегодня на очереди саундтрек к Patch Quest (неполный, полный можно купить в стиме)
Patch Quest — лучшая игра, потому что там есть Rust zone
🤔5🤡1🌚1
Блог*
Своё решение выложу вечером в пятницу
Итак, в чём же сложность данной задачи? В контекстной зависимости. Форматирование каждого терма зависит от того, в каком контексте он находится. Соответственно, для корректного форматирования нужно этот самый контекст передавать. Это также позволяет избежать смешения ответственности: каждый вариант сам отвечает за своё форматирование и не смотрит на внутренние термы, лишь прокидывает корректный контекст.
Что же в данном случае является контекстом? Знак перед термом. Причём важно то, какой именно: плюс или минус. Также важно, что это опциональное значение: на верхнем уровне никаких знаков перед выражением нет.
Положительный литерал не нужно обрамлять в скобки, отрицательный литерал — нужно, но только если перед ним есть знак. Или, иными словами, отрицательный литерал не нужно обрамлять в скобки только в том случае, если он является первым слагаемым в выражении целиком — или уже отделён скобками.
Отрицание схоже с отрицательным литералом: только первое слагаемое не нужно обрамлять скобками, в остальных случаях надо. При форматированию вложенному терму в качестве контекста передаётся знак минус.
Сложение — тот случай, когда нужно различать плюс от минуса в переданном контексте. В случае плюса или отсутствующего знака можно форматировать как есть, а в случае минуса перед сложением нужно ставить скобки. Так как это сложение, для второго слагаемого контекстом всегда является знак плюс. Для первого слагаемого немного сложнее: если скобки не ставятся, то контекст пробрасывается (так как знак перед термом тот же самый), а если ставятся, то, очевидно, никаких знаков перед первым слагаемым нет и в качестве контекста передаётся
Код
Что же в данном случае является контекстом? Знак перед термом. Причём важно то, какой именно: плюс или минус. Также важно, что это опциональное значение: на верхнем уровне никаких знаков перед выражением нет.
Положительный литерал не нужно обрамлять в скобки, отрицательный литерал — нужно, но только если перед ним есть знак. Или, иными словами, отрицательный литерал не нужно обрамлять в скобки только в том случае, если он является первым слагаемым в выражении целиком — или уже отделён скобками.
Отрицание схоже с отрицательным литералом: только первое слагаемое не нужно обрамлять скобками, в остальных случаях надо. При форматированию вложенному терму в качестве контекста передаётся знак минус.
Сложение — тот случай, когда нужно различать плюс от минуса в переданном контексте. В случае плюса или отсутствующего знака можно форматировать как есть, а в случае минуса перед сложением нужно ставить скобки. Так как это сложение, для второго слагаемого контекстом всегда является знак плюс. Для первого слагаемого немного сложнее: если скобки не ставятся, то контекст пробрасывается (так как знак перед термом тот же самый), а если ставятся, то, очевидно, никаких знаков перед первым слагаемым нет и в качестве контекста передаётся
None.Код
🤯6🤮4👍2🤔2❤1