99 бутылок: SCSS
63. SCSS — язык шаблонизации для файлов CSS. Я написал реализацию «99 бутылок» на нём ещё в 2012 году, но по неизвестной причине так никуда и не выложил. Возможно к лучшему — посмотрел свежим взглядом и исправил несколько неточностей.
Язык полностью процедурный, с примитивными типами (есть массивы, включая ассоциативные и собственный тип — «цвет»), поддержкой интерполяции в строках и с массой своих особенностей, диктуемых областью применения.
Шаблонизатор не имеет обособляющих элементов (типа двойных фигурных скобок), его конструкции «живут» прямо в коде, который генерируется, поэтому иногда нужно ставить немного уродливые подпорочки — например, символ деления используется и в математической операции, и в синтаксисе таблиц стилей, так что иногда приходится указывать что имеется ввиду.
Переводы строк пришлось оставить в строках как есть, поскольку, по всей видимости, нет никаких специализированных управляющих последовательностей для этого — в практике такой задачи не встречается.
@function bottles($beer) {
@if $beer == 0 { @return "no bottles" }
@if $beer == 1 { @return "1 bottle" }
@return $beer + " bottles"
}
@function beer($beer) {
$b: bottles($beer);
@return "#{ $b } on the wall, #{ $b }.
Take one down and pass it around, " + bottles($beer - 1) + " of beer on the wall.
"
}
$result: "
";
@for $i from 99 through 1 {
$result: $result + beer($i)
}
@debug $result +
"No more bottles of beer on the wall, no more bottles of beer.
Go to the store and buy some more, 99 bottles of beer on the wall."Машина
В книге «Письма из деревни» Энгельгардта, о которой я уже упоминал, персонажи нередко разъезжают на машинах, хотя на дворе
Вот только одно упоминание, в пятом письме:
Наверное легко догадаться, что «машинами» в таком контексте тогда называли паровозы. В те времена их как только не называли — «самокатная паровая машина», «паровая фура», «паровая телега», «паровой экипаж», «паровая карета», «пароходка» и даже «пароход».
Вот что пишет Виктор Одинцов в своей книге «Лингвистические парадоксы» об истории более привычного нам названия:
Но в 1836 г. в связи с предстоящим открытием Царскосельской железной дороги и приобретением первых локомотивов в петербургской газете «Северная пчела» в № 223 от 30 сентября сообщалось: «Немедленно по прибытии паровых машин, которые для отличия от водяных пароходов можно было бы назвать паровозами, последуют опыты употребления их…» Наш современник, известный лингвист Ю. С. Сорокин считает, что редактор газеты Н. Греч, немец по происхождению, создал слово паровоз по образцу соответствующего немецкого слова.
Кстати, паровозы сошли с арены только к концу
Правда некоторые действуют до сих пор — как аттракцион или на манёврах в железнодорожных депо и узлах.
Так в 2012 году мы с женой проехались на таком аттракционе при посещении Музея железнодорожного транспорта Московской железной дороги. Кстати, в высшей степени рекомендую этот музей, упомянутая поездка не слишком запоминающаяся, но вот экспонаты — огромные старинные паровозы, я помню до сих пор, сильное впечатление.