Ну такое откуда это выражение: Откуда взялось «ну такое». Воплощенный в сленге русский дзен

Содержание

Откуда взялось «ну такое». Воплощенный в сленге русский дзен

Недавно писатель Татьяна Толстая опубликовала на своей странице в фейсбуке пост, посвященный сленговым выражениям. Она пишет: «Интересна потребность в неопределенности, в неназывании, в неуточнении: долгое время массово говорили «как бы», к ужасу языковых пуристов. Потом это ушло, и на опустевшем берегу возросло «типа», не столь заразное, хотя, конечно, сорное. И вот новое выражение: «ну, такое» – любопытная разновидность прежнего «вот это вот всё», почти забытого.


Какое «такое» – не говорится, читающему (и слушающему) оставляют широкий простор для понимания, для наполнения смыслом». В этот же ряд, думается, можно поставить ещё и исчезающее, но недавно бывшее популярным выражение «ни о чём». «Как тебе фильм?» – «Да ни о чём».

Откуда взялось «Ну такое»

Если с происхождением «как бы», «ни о чём» или «типа» все более-менее ясно, то «ну такое» (которое чаще пишется без запятой) остается загадкой. Как оно появилось, откуда?

Светлана Гурьянова

Словари, понятное дело, это выражение пока не фиксируют, поэтому о его происхождении мы можем только строить догадки. Среди версий, встретившихся на просторах Сети, правдоподобными кажутся три.

Первая состоит в том, что «ну такое» – трансформация давно известного выражения «так себе». Сначала оно превратилось в «ну такое себе» (и какое-то время просуществовало в таком виде в качестве мема), а затем сократилось до «ну такое».

Версия вторая: выражение это – украинизм, а популярным оно стало из-за последней фразы известного анекдота:

«Мужик на Привозе спрашивает у торговки:

– Это у вас что, молоко?

– Та ни…

– Сливки?

– Та ни…

– Сметана?..

– Та ни…

– А что?!

– Ну, таке…»

Версия третья: «ну такое» – всего лишь продлённое «ну так».

Взявшееся буквально из ниоткуда, сейчас «ну такое» действительно стало одним из самых употребительных сленговых выражений. Причем и в речи «поколения 30+», но прежде всего в языке подростков.

«Ща инстик чекну и го» – почему молодежь коверкает язык до неузнаваемости

Показательна в этом смысле одноименная песня двенадцатилетней певицы и блогера Лизы Анохиной, клип на которую набрал в YouTube почти полтора миллиона просмотров и 40 тысяч лайков. Примерно треть слов песни занимает повторяющееся «ну такое», ставшее скорее отрицательной характеристикой: «Все твои шмотки – ну такое, / все твои фотки – ну такое, / все твои парни – ну такое. / Может, время стать собой?» Стать собой – это, видимо, хорошо одеться, красиво сфотографироваться и найти подходящего парня.

Любопытно, что «ну такое» сблизилось со словом «никакое» в одном из его значений – «очень плохой, никуда не годный, находящийся в плохом состоянии» («певица она никакая», «после вчерашнего он совсем никакой»). «Ну такое» отрицания «ни», в отличие от «никакой», не содержит, и смысл нового выражения не настолько категоричен. Оно скорее приобрело негативный оттенок: так можно сказать о чем-то сомнительного качества, невразумительном, ничем не примечательном. Но возникло выражение как максимально неопределенное высказывание в одном ряду с «как бы» и «типа».

Почему сложился этот ряд? И откуда это стремление к неопределенности, о котором пишет Толстая?

Воплощенный в сленге русский дзен

Возможно, ответ на этот вопрос очень прост, и всё дело лишь в ограниченном словарном запасе тех, кто такие выражения применяет. Этот недостаток можно замаскировать обобщенными и размытыми характеристиками.

Но, быть может, все устроено несколько сложнее?

Лингвист Максим Кронгауз в книге «Русский язык на грани нервного срыва» пишет о «как бы»: «Как это ни парадоксально прозвучит, это слово стало очень своеобразным инструментом вежливости (или «как бы вежливости»). Фактически оно означает, что говорящий отказывается делать резкие и окончательные высказывания о мире, а каждый раз заявляет о своей неуверенности, об отсутствии у него права делать такие утверждения и в том числе о его невысоком статусе, в частности по отношению к собеседнику. Это как если бы человек говорил одну фразу и сразу добавлял: “Ну, впрочем, это мое частное и не очень важное мнение, возможно, не соответствующее действительному положению дел”».

Подчеркнутая вежливость (которая, впрочем, далеко не всегда бывает уместна) действительно часто появляется в современной коммуникации. Чего стоит, например, принципиальное «Вы» с большой буквы даже при обращении ко многим людям – на всякий случай, лишь бы никого не обидеть.

А может, все эти «как бы» и «ну такое» – ещё и проявленная русская пассивность, нерешительность?

Желание спрятаться за обтекаемыми формулировками, чтобы не отвечать на больные вопросы? Бездействие и оторопь из-за оглушительной, слишком ускорившейся реальности, своего рода новая обломовщина?

В тургеневском «Накануне», написанном в 60-е годы XIX века – т.е. в переломное время, в чем-то похожее на нашу современность – есть очень любопытный персонаж, богатый помещик Увар Иванович Стахов. «Увар Иванович носил просторный сюртук табачного цвета и белый платок на шее, ел часто и много, и только в затруднительных случаях, то есть всякий раз, когда ему приходилось выразить какое-либо мнение, судорожно двигал пальцами правой руки по воздуху, сперва от большого пальца к мизинцу, потом от мизинца к большому пальцу, с трудом приговаривая: “Надо бы… как-нибудь, того…”»

Язык Тургенева и Монеточки: 6 идей для уроков русского

Легко представить, как Увар Иванович говорит и «как бы… ну такое», не так ли?

На Уваре Ивановиче (персонаже, в общем-то, второстепенном, особой роли в сюжете не играющем) роман и заканчивается. Один из героев спрашивает его, когда же появятся в России новые, деятельные, «путные» люди. И затем следует заключительная фраза романа: «Увар Иванович поиграл перстами и устремил в отдаление свой загадочный взор».

Молчит, не дает ответа – как и вся страна, гоголевская птица-тройка.

А вдруг ни ответа, ни истины нет и быть не может – как предполагает постмодернизм? И именно в нем корни распространившихся с начала 90-х во всем сомневающихся и неопределенных «как бы» или «типа», а теперь и «ну такое»?

Татьяна Никитична закончила свой пост в фейсбуке так: «Все эти выражения можно в принципе слить в один неясный ком: «ну это как бы типа такое». Смысла при этом не прибавится и не убавится; по-видимому, неопределенность не усиливается. Это вроде умножения на ноль. Пустота, переливающаяся смыслами: дзен».

Закончим же и мы эту статью пустотой. Ну такой текст получился как бы.

Репортажи пользователей сайта Korrespondent.net — Долбанная фраза «Ну такое»

Про столичную чуму

Вот уже больше года я слышу в речи своих знакомы, друзей, да и незнакомцев фразу,  которую они дают в ответ на любой вопрос или в качестве персонального комментария. И честно говоря,она уже вызывает скрежет моих зубов. Это ебаная фраза: «Ну, такое».

Ее лепят куда попало и где попало. Будь то новая выставка в Пинчук Арт Центре или выступление худосочного певца в какой-нибудь рыгаловке: любое событие в жизни сейчас может получить бескомпромиссную оценку в форме комментария, обязательно, блядь, произносимого в одной и той же, слегка растягиваемой интонации. Они что, блядь, в каком-то тренинговом центре развития личности проходили обучение? Почему все это произносят одинаково?

И что самое интересное, так это то, как этой чумой заражаются. Я знаю механику.
Услышав эту хуйню впервые, человеку она не нравится. Он понимает, что его не устраивает такой ответ на его умный вопрос и соображает, что эту фразу его визави где-то подцепил, как сифилис. Но спустя пару дней, вдруг обнаруживает, что с его собственных уст слетает бестолковый ответ на чей-то вопрос в форме «Ну, такое». И все. Обратного пути уже нет. Попался. И ты понимаешь, что в общем-то это не такая уж дурацкая фраза. Что она вполне удобна. Не надо напрягаться и подбирать эпитеты, прилагательные, не надо лишний раз тревожить свой разум для того, чтоб формулировать ясные ответы. Ты замечаешь, что она тебе начинает нравится и после этого, она становится частью тебя. И тебе пиздец. Ты ее больше не замечаешь. Она поселилась надолго. Ты ей понравился.

Что можно делать в случае, если ты еще не заразился этой чумой? итак, как только слышишь, как твой партнер произносит эту ебучую фразу, действуй:

  • «Ну, такое» — спроси его, глядя в рожу: «Какое?»
  • «Ну, такое» — с издевкой и демонстративным напряжением, в ожидании дальнейшего ответа, переспроси, глядя опять же в ебло: «Ну… какое?»
  • «Ну, такое» — с грустью удивись своему умному другу: «Больше нечего сказать?»

Понятно,что чумиха вскоре пройдет. Но поскольку заебла она уже основательно, то хочется, чтоб ее уход был позорным. Дать бы ей напоследок хорошенько под сраку!

P.S. 

— Добрый день!

— Здравствуйте!

— Каково ваше впечатление о новом логотипе Киева?

— Эм…ну, такое… 

Рубрика «Я — Корреспондент» является площадкой свободной журналистики и не модерируется редакцией. Пользователи самостоятельно загружают свои материалы на сайт. Редакция не разделяет позицию блогеров и не отвечает за достоверность изложенных ими фактов.

Ежу понятно. Откуда произошли выражения, которые мы используем каждый день? | Образование | Общество

Историю одних из самых популярных фразеологических оборотов разбираем вместе с

 профессором Государственного института русского языка им. Пушкина Ириной Лешутиной.

Втирать очки

Есть мнение, что значение этого фразеологизма связано не с оптикой, а с игральными картами, а точнее, с игрой в «очко». Ещё в XIX в. игроки научились хитрить, меняя, к примеру, четвёрку на пятёрку. Поэтому и выражение означает «обманывать» или «вводить в заблуждение». Кстати, такой способ обмана был описан ещё Пушкиным в «Пиковой даме».

Тютелька в тютельку

Сама «тютелька» происходит от слова «тютя», обозначающего «удар», и описывает процесс попадания топором в одно и то же место в столярных работах. Сегодня у выражения два значения: «максимальная точность действий» и «сходство предметов до мельчайших деталей».

Играть на нервах

По официальной версии, после открытия врачами древности нервов в организме человека их стали называть по сходству со струнами музыкальных инструментов тем же словом — «nervus». И поэтому раздражающие действия получили свой фразеологизм — «играть на нервах».

Мальчик для битья

Выражение имеет литературные корни. Мы его можем встретить в романе Марка Твена «Принц и нищий». В XV–XVIII вв. при маленьких принцах находились специальные мальчики-пажи для побоев, которых ругали за провинности и плохую учёбу будущего короля. В чём был смысл такого наказания? Дело в том, что принц был очень привязан к своему пажу, и подразумевалось, что при каждом ударе, наносимом мальчику, принц должен был испытывать чувство вины. Это выражение употребляют, когда хотят подчеркнуть, что злость срывают на другом человеке.

И ежу понятно

Есть две версии. Первая говорит о том, что выражение выдернуто из стихотворения Маяковского («Ясно даже и ежу — /этот Петя был буржуй»). Слово «ёж» было использовано поэтом для соблюдения рифмы. Народную популярность эта фраза получила после её использования братьями

Стругацкими в повести «Страна багровых туч».

Вторая версия отсылает к середине прошлого века, когда в СССР были популярны физико-математические школы-интернаты. Из-за большого количества учеников классы имели литеры от А до И. Но в классы с литерами Е, Ж, И попадали ученики, которые позже присоединялись к основной программе. Поэтому их ученики постарше называли «ежами» и говорили, хоть программа и сложна, она и «ежу понятна».

Не в своей тарелке

Считается, что это калька с французского языка, где слово «assiette» имеет значение как «тарелка», так и «расположение гостей за столом». Русское дворянство, прекрасно знавшее французский язык, часто применяло это выражение в первом значении, даже там, где это было неуместно. На неверный перевод указывал и Пушкин, но тем не менее выражение в таком значении прочно закрепилось в русском языке.

Скелет в шкафу

Из-за того что в Британии до 1832 г. не было разрешено препарировать тела мёртвых даже в медицинских целях, врачи могли иметь доступ лишь к телам казнённых преступников. И зачастую оставляли скелет бывшего заключённого… себе, чтобы проводить опыты и дальше. Естественно, это было незаконно и хранилось в строжайшей тайне. Единственным местом, где можно было спрятать скелет, был шкаф. Поэтому сейчас, когда говорят «скелет в шкафу, подразумевают что-либо тайное, секретное.

Зарубить на носу

Носом в данном выражении называется не часть лица, а специальную бирку, которую в прошлые века неграмотные люди носили с собой. На ней ставили зарубки для учёта долгов, оставляли заметки и пр., чтобы ничего не забыть. Сегодня это выражение применяется в значении «запомнить».

Всыпать по первое число

Раньше, вместо того чтобы поставить двойку, учеников в школах били розгами. Для этого нанимали специального человека. Если же ученику доставалось сверх меры, то все последующие наказания откладывались до первого числа нового месяца. Поэтому сейчас это выражение означает «сильно наказать».

Сирота казанская

Это выражение появилось во времена взятия Казани Иваном Грозным. Пленных татарских князей царь пытался сделать союзниками и задабривал подарками. Для того чтобы показать своё «бедственное положение» и выгадать больше царской милости, татарские князья специально хотели казаться жалкими и пострадавшими. Видя это, русские бояре называли их в шутку «сиротами казанскими».

Но есть и ещё одна версия происхождения этого выражения. Тогда же, после взятия Казани, многие дети остались сиротами. По приказу царя их раздавали по русским семьям. И в этом случае выражение «сирота казанская» употреблялось уже без иронии.

Голубая кровь

И снова обратимся к истории, правда, к испанской. Дело в том, что испанская знать не раз указывала всему миру на то, что её кровь никогда не смешивалась с кровью иноземцев. Испанские гранды гордились поэтому своей бледной кожей, на которой были видны даже голубые вены. Собственно, это и дало им возможность утверждать, что в их жилах течёт благородная кровь. С тех пор аристократов, избранных и тех, кто выделяется своим положением в обществе, называют «голубая кровь».

Дать добро

Появился этот фразеологизм благодаря военно-морскому флоту. В дореволюционной русской азбуке буква «Д» называлась «добро». Морской же флаг под этой буквой говорил: «Согласен, разрешаю». Поэтому название буквы и значение флага слились в одно выражение: «Дать добро». В широкую речевую практику оно вошло после фильма «Белое солнце пустыни»: «Таможня даёт добро».

Проходить красной нитью

Есть две версии происхождения этого выражения, и обе связаны с воровством казённого имущества. В первом случае фразеологизм относят к временам, когда в Голландии в XVII в. воровали паруса на флоте. Чтобы предотвратить хищения, было принято решение в парусину вплетать красную нить. Это позволяло отличать казённую ткань. Вторая версия также связана с флотом, но только английским. Там тоже воровали… канаты. И с той же целью в них вплетали красную нить так, чтобы её невозможно было убрать. Сегодня это выражение используется, когда говорят о главной мысли чего-либо.

Дойти до ручки

В Древней Руси пекли калачи в форме замка. Специально выпекали ручку замка, чтобы удобно было держать и есть калач. Когда калач съедался, ручка выкидывалась или её доедали нищие. Про тех же, кто съедал калач полностью, говорили, что он в крайней нужде и таким образом «дошёл до ручки».

Реветь белугой

Выражение берёт начало от кита белухи. Дело в том, что этот зубатый кит, которого раньше называли «белуга», издаёт очень громкий рёв. Поэтому к людям, которые громко или сильно плачут, применяют выражение «реветь белугой». Интересно, что рыба семейства осетровых белуга, как и все рыбы, молчалива.

Растекаться мыслью по древу

Это выражение обязано своим появлением неточному переводу одной из строк «Слова о полку Игореве». В изначальном тексте было: «Боян вещий, если кому-то хотел сложить песнь, растекался мысию по древу, серым волком по земле, сизым орлом под облаками». Слово «мысь/мысию» приняли за «мысль», тогда как с древнерусского языка оно переводится как «белка». Сегодня это выражение означает «говорить много, не по делу».

Значение слова НУ. Что такое НУ?

НУ1, междом. Разг.

1. Выражает призыв или побуждение к действию. [Бальзаминов:] Ну, давай плясать! Становись! А. Островский, За чем пойдешь, то и найдешь. [Чугреев] сунул Фадейцеву устав. — Переписывай! Быстро, ну. Вс. Иванов, Долг. — Ну, — сказал я, — выкладывай: что тебе нужно? Паустовский, Золотая роза.

2. ( с род. п. местоимений 2 и 3 л. ед. и мн. ч.: ну тебя, ну его, ну вас, ну их, а также и в сочетании со словами: „к черту“, „к богу“, „к лешему“ и т. п.). Выражает требование не надоедать чем-л., не приставать к говорящему, оставить его в покое; соответствует по значению словам: отстань(те), отвяжись (отвяжитесь). Ну тебя к черту! Ну вас к лешему!— А лыки, скажи, лесник отнял. Слышишь? — Ну тебя, слышу! — сурово отозвался мальчик. Куприн, Конокрады. — Здесь, брат, дело не обойдется без сватов. Верно, Марина? — А ну вас к богу! Фадеев, Молодая гвардия. || Выражает желание избавиться от кого-, чего-л. нелюбимого, надоевшего, ненужного; соответствует по значению словам: прочь, долой. — Не ем я раков… Ну их! — сказал старик и брезгливо отвернулся. Чехов, Степь. Шурик крикнул от своих ворот: — Сергей, в рощу пошли? — А ну ее! — сказал Сережа. Панова, Сережа.

3. ( обычно в сочетании с частицами „и“, „уж“, „ж“: ну и, ну уж, ну ж). Выражает удивление, восхищение или недовольство, негодование, иронию и другие чувства. [Графиня внучка:] Ну бал! Ну Фамусов! умел гостей назвать! Какие-то уроды с того света. Грибоедов, Горе от ума. [Пионова:] Ну уж и женщины-то ваши тоже хороши. А. Островский, Свои собаки грызутся, чужая не приставай! — Ну и гроза! Давно уж такой не бывало. Решетников, Свой хлеб. Но как он тогда это сказал? Со злорадством, с пренебрежением ко всему колхозному: ну и хозяева, ну и работники! Жестев, Земли живая душа.

Ну и ну!, ай да ну! — возглас, выражающий удивление, неодобрение и т. п. Халаты тотчас же нашлись, Щукину подали такой сверхпрофессорский, что он даже пальцами пощупал — «ну и ну!» Герман, Я отвечаю за все.
Фу-ты ну-ты см. фу.

НУ2, частица.

1. вопросительная ( в сочетании с частицей „да“: да ну). Употребляется для выражения вопроса с оттенком недоверия, удивления и т. п.; соответствует по значению слову неужели. [Глафира:] А вчера был слух, что ты арестован. [Лаптев:] Да ну? Это, должно быть, неверно. М. Горький, Егор Булычов и другие. — Это кто такой? — спросил у него сосед слева. — Помощник Лазо. Правая его рука. — Да ну? — удивился боец. Седых, Даурия.

2. вопросительная. Употребляется как отклик на обращение или на сообщение о чем-л. в значении: что?, что дальше?, да?, я слушаю! — Илья Ильич! — Ну? — откликнулся он. — А что ж управляющему-то сказать? И. Гончаров, Обломов. — Евгений! — воскликнул вдруг Аркадий. — Ну? — Я завтра с тобой уеду тоже. Тургенев, Отцы и дети. — Баранцевич приезжает к нам дважды в неделю. По вторникам и пятницам. — Ну? — И все к пяти утра. — Ну? — Ты не нукай, а подумай, зачем? Нариньяни, Мещанин во дворянстве.

3. вопросительная ( в сочетании со словом „как“: ну, как). Разг. Употребляется в начале вопросительного предложения, выражающего опасение, предложение чего-л. нежелательного; означает: что, если[Хлестова:] Ну, как с безумных глаз Затеет драться он! Грибоедов, Горе от ума. [Чебаков:] Ну, как ваше начальство узнает, что вы башмачным мастерством занимаетесь? А. Островский, За чем пойдешь, то и найдешь. — Чей же это котенок? Откуда стащил его Андрей? А ну, как хозяева хватятся и начнут его разыскивать? Кузьмин, Круг царя Соломона.

4. усилительная. Употребляется для придания высказыванию большей силы, выразительности, подчеркивает значение того или другого слова. — Ведь это все неправда? — — Ну, конечно, неправда, — ответила Екатерина Дмитриевна, устало закрывая глаза. А. Н. Толстой, Сестры. | В вопросе как простом, так и риторическом. [Фамусов:] Ну как не порадеть родному человечку! Грибоедов, Горе от ума. [Липочка:] Ну, что за жизнь: ни цели, ни радости, ни надежды! А. Островский, Счастливый день. | Для усиления противительного союза. — С тех пор [Кирила Селифаныч] лечит своих крестьян с таковым же успехом… Ну, а они, разумеется, с таковою же преданностью. Тургенев, Гамлет Щигровского уезда.

5. Разг. Употребляется в значении союза, указывающего на вывод, заключение или вводное замечание. — Ну, и гости, разумеется, при этом случае бывают. И забава, и почет соблюден. Тургенев, Малиновая вода. [Татьяна Алексеевна:] Ну, наступил вечер, и такие, знаешь, пошли все мрачные мысли! Чехов, Юбилей. Ну, словом, с некоторых пор Лисе понравился Бобер! Михалков, Лиса и Бобер. || В начале реплики в значении: итак, наконец. — Ну, я к себе, — сказал Жук, — 514 прощаться не буду, я еще к вам в гости приду. Симонов, Дни и ночи.

6. ( с неопределенной формой глагола несовершенного вида). Разг. Употребляется в значении: начал, стал, принялся энергично делать что-л.; то же, что давай (см. давать в 3 знач.). — Представьте: вошли к нему и ну кричать и спорить, да так дико, злобно. Тургенев, Накануне. Шел он, шел, взошел на горку И внизу увидел норку. То-то рада мышка-мать! Ну мышонка обнимать! Маршак, Сказка об умном мышонке.

7. Прост. Употребляется в значении: допустим, положим (в реплике, содержащей условное допущение, вынужденное согласие). [Зина:] Вы первый курс? [Студентка:] Ну, первый. Какое это имеет значение? Погодин, Маленькая студентка.

Ну да! см. да1.
Ну и что (же)? — то же, что ну 2 (во 2 знач.). [Евгений] сообщил ему, что доктор Богословский приехал —. — Ну и что? — спросил Голубев. Герман, Я отвечаю за все.
Ни тпру ни ну см. тпру.

Откуда пошло выражение … — Мастерок.жж.рф — LiveJournal

Предлагаю вам вот такие варианты происхождения некоторых известных крылатых уже выражений и фраз. Если есть какой то спорный момент, давайте обсуждать версии 🙂

1. Во времена Ивана Грозного на Руси одним из знаков достоинства вельможи являлся расшитый воротник, который назывался «шиворот». Если же какой-нибудь боярин подвергался царскому гневу и опале, его по обыкновению сажали на тощую клячу спиной вперёд, предварительно вывернув одежду наизнанку. С тех пор закрепилось выражение «шиворот-навыворот» в значении «наоборот, неправильно».

2. Когда человеку сопутствует удача, говорят, что он родился в рубашке. Слово «рубашка» в этом выражении появилось не так давно, а раньше его произносили как «родиться в сорочке», и оно имело чисто практический смысл. Дело в том, что сорочкой называли не только одежду, но и околоплодный пузырь, в котором ребёнок находится во время беременности. Иногда во время родов этот пузырь не разрывается, и ребёнок появляется в нём на свет, что, по суеверным представлениям, сулит ему в жизни счастье и везение.

3. Известна фраза «Все мы вышли из гоголевской шинели», которая употребляется для выражения гуманистических традиций русской литературы. Часто авторство этого выражения приписывают Достоевскому, однако на самом деле первым сказавшим его был французский критик Эжен Вогюэ, рассуждавший об истоках творчества Достоевского. Сам Фёдор Михайлович привёл эту цитату в беседе с другим французским литератором, который понял её как собственные слова писателя и опубликовал их в таком свете в своём труде.

4. В 1950—1960-х годах американские самолёты нередко нарушали воздушное пространство Китая с целью разведки. Китайские власти фиксировали каждое нарушение и всякий раз высылали по дипломатическим каналам «предупреждение» США, хотя никаких реальных действий за ними не следовало, а счёт таким предупреждениям вёлся на сотни. Такая политика стала причиной появления выражения «последнее китайское предупреждение», означающего угрозы без последствий.


5. Выражение «бальзаковский возраст» возникло после выхода романа Бальзака «Тридцатилетняя женщина» и допустимо в отношении женщин не старше 40 лет.

6. Выражение «В здоровом теле здоровый дух» первоначально было взято из сатиры римского писателя Ювенала и звучало так: «Надо молить богов, чтоб дух здоровый был в теле здоровом». Предполагают, что в основе этой строчки лежит известная в Древнем Риме поговорка: «В здоровом теле здоровый дух — редкое явление».

7. Шведский стол сами шведы называют закусочным или бутербродным. А про шведские нарицательные (стенка, семья, стол) можно почитать ТУТ подробнее.

8. Термин, обозначающий в шведском языке шведскую стенку, переводится как «рама с перекладинами».

9. Выражению «китайская грамота» соответствует английская идиома It is Greek to me’. Аналогичные выражения есть и в других языках, часто с другими эталонами трудности. Например, немецкое выражение апеллирует к испанскому языку, румынское — к турецкому, турецкое — к французскому, а китайское — к птичьему языку.

10. Фраза «Элементарно, Ватсон!», которую мы привыкли ассоциировать с Шерлоком Холмсом, ни разу не встречается в оригинальных книгах Конан-Дойля.

11. Царица Елизавета Петровна в 1746 г. приказала клеймить лбы преступникам. Отсюда ведут происхождение многие крылатые выражения: «на лбу написано», «заклеймить позором» и «прожжённый преступник».

12. Тютелька — это уменьшительное от диалектного тютя («удар, попадание» — название точного попадания топором  в одно и тоже место при столярной работе. Сегодня для обозначения высокой точности употребляется выражение «тютелька в тютельку»).

Самого опытного и сильного бурлака, идущего в лямке первым, называли шишкой. Это перешло в выражение «большая шишка» для обозначения важного человека.

13. Раньше пятница была свободным от работы днём, а, как следствие, базарным. В пятницу, получая товар, обещали в следующий базарный день отдать полагающиеся за него деньги. С тех пор для обозначения людей, не исполняющих обещания, говорят: «У него семь пятниц на неделе».

14. Раньше носом помимо части лица называли бирку, которую носили при себе и на которой ставили зарубки для учёта работы, долгов и т.п. Благодаря этому возникло выражение «зарубить на носу». В другом значении носом называлась взятка, подношение. Выражение «остаться с носом» значило уйти с непринятым подношением, не договорившись.

15. Притяжательное прилагательное «шарашкина» образовалось о диалектного шарань («шваль, голытьба, жульё») . Выражение «шарашкина контора» сначала означало буквально «учреждение, организация жуликов, обманщиков», а сегодня применяется для обозначения просто несолидной конторы.

16. После открытия врачами древности нервов в организме человека они назвали их по сходству со струнами музыкальных инструментов тем же словом nervus. Отсюда возникло выражение для раздражающих действий «играть на нервах».

17. По-французски «асьет» это и тарелка, и настроение, состояние. Предположительно, ошибочный перевод французского выражения стал причиной появления фразеологизма «не в своей тарелке».

18. По христианскому обычаю, человека, которому оставалось недолго жить, священник исповедовал, причащал и кадил ладаном. В результате для обозначения болезненного человека или еле работающего устройства закрепилось выражение «дышит на ладан».

19. Древние евреи со времён царя Давида и до разрушения Второго Храма в 70 году н.э. хоронили покойников во временных склепах или просто углублениях в скале, вход в которые закрывался большим камнем. Через год родственникам нужно было выкопать останки покойника и промыть сохранившиеся кости чистой водой для перезахоронения в постоянную могилу. Сегодня выражение «перемывать косточки» обозначает разбор характера человека.

20. По евангельской легенде Понтий Пилат, вынужденный согласиться на казнь Иисуса, умыл руки перед толпой и сказал: «Невиновен я в крови Праведника сего». Отсюда произошло выражения для снятия с себя ответственности «я умываю руки».

21. По древнееврейскому обряду, в день отпущения грехов первосвященник клал руки на голову козла и тем самым возлагал на него грехи всего народа. Отсюда произошло выражение «козёл отпущения».

22. Однажды молодой врач, приглашенный к безнадежно больному русскому мальчику, разрешил ему есть все, что он захочет. Мальчик съел свинину с капустой и, к удивлению окружающих, начал поправляться. После этого случая врач прописал свинину с капустой больному немецкому мальчику, но тот, поев, на следующий день умер. По одной из версий, именно эта история лежит в основе появления выражения «что русскому хорошо, то немцу смерть».

23. Небольшой роговой бугорок на кончике языка у птиц, который помогает им склёвывать пищу, называется типун. Разрастание такого бугорка может быть признаком болезни. Твёрдые прыщики на языке человека названы типунами по аналогии с этими птичьими бугорками. По суеверным представлениям, типун обычно появляется у лживых людей. Отсюда и недоброе пожелание «типун тебе на язык».

24. Когда сын римского императора Веспасиана упрекнул его в том, что он ввёл налог на общественные уборные, император показал ему поступившие от этого налога деньги и спросил, пахнут ли они. Получив отрицательный ответ, Веспасиан сказал: «А ведь они от мочи». Отсюда произошло выражение «деньги не пахнут».

Когда апостолу Фоме рассказали о воскресении распятого Христа, он заявил: «Если не увижу на руках Его ран от гвоздей, и не вложу перста моего в раны Его, и не вложу руки моей в ребра Его, не поверю». Сегодня любого человека, которого трудно убедить в чём-либо, называют «Фомой неверующим».

25. Ко всемирной выставке 1889 года в Париже было приурочено открытие похожей на гвоздь Эйфелевой башни, что произвело сенсацию. С тех пор в язык вошло выражение «гвоздь программы».

26. Выражение «после дождичка в четверг» возникло из-за недоверия к Перуну, славянскому богу грома и молнии, днём которого был четверг. Мольбы к нему часто не достигали цели, поэтому о несбыточном стали говорить, что это случится после дождичка в четверг.

27. Выражение «Кто с мечом к нам войдет, от меча и погибнет» не принадлежит Александру Невскому. Его автор — сценарист одноимённого фильма Павленко, переделавший фразу из Евангелия: «Взявшие меч, мечом погибнут».

28. Выражение «Игра не стоит свеч» пришло из речи картёжников, говоривших так об очень небольшом выигрыше, который не окупает стоимости свечей, сгоревших во время игры.

29. Во время возвышения Московского княжества с других городов взималась большая дань. Города направляли в Москву челобитчиков с жалобами на несправедливость. Царь иногда сурово наказывал жалобщиков для устрашения других. Отсюда, по одной из версий, произошло выражение «Москва слезам не верит».

30. В фельетоне Кольцова 1924 года рассказывалось о крупной афере, раскрытой при передаче концессии на эксплуатацию нефти в Калифорнии. В афере были замешаны самые высокопоставленные чиновники США. Здесь же было впервые употреблено выражение «Дело пахнет керосином».

31. В старину считали, что душа человека помещается в углублении между ключицами, ямочке на шее. В этом же месте на груди был обычай хранить деньги. Поэтому о бедном человеке говорят, что у него «за душой ничего нет».

32. B старину отколотые от полена чурки заготовки для деревянной посуды называли баклушами. Их изготовление считалось лёгким, не требующим усилий и умения делом. Сейчас мы употребляем выражение «Бить баклуши» для обозначения безделья.

33. В старину деревенские женщины после стирки «катали» бельё с помощью специальной скалки. Хорошо прокатанное белье оказывалось выжатым, выглаженным и чистым, даже если стирка была не очень качественной. Сегодня для обозначения достижения цели любым способом употребляется выражение «Не мытьём, так катаньем».

34. В старину гонцы, доставлявшие почту, зашивали под подкладку шапки или шляпы очень важные бумаги, или «дела», чтобы не привлекать внимания грабителей. Отсюда происходит выражение «Дело в шляпе».

35. В средневековой французской комедии богатый суконщик подаёт в суд на пастуха, стянувшего у него овец. Во время заседания суконщик забывает о пастухе и осыпает упрёками его адвоката, который не уплатил ему за шесть локтей сукна. Судья прерывает речь словами: «Вернёмся к нашим баранам»,  ставшими крылатыми.

36. В Древней Греции существовала мелкая монета лепта. В евангельской притче бедная вдова жертвует на строительство храма две последние лепты. Из притчи произошло выражение «Внести свою лепту».

В 17 веке по распоряжению царя Алексея Михайловича между Москвой и летней царской резиденцией в селе Коломенском было заново произведено измерение расстояний и установлены очень высокие верстовые столбы. С тех пор высоких и худощавых людей называют «верстой коломенской».

37. В 13 веке денежной и весовой единицей на Руси была гривна, делившаяся на 4 части («рубля») . Особенно увесистый остаток слитка называли «длинным рублём». С этими словами связано выражение про большой и лёгкий заработок «Гнаться за длинным рублём».

38. Самая знаменитая цитата из фильма «Звёздные войны» — «Да пребудет с тобой Сила» — по-английски звучит как «May the Force be with you». Эту фразу-каламбур можно понять и как «May the 4th be with you» («4 мая с тобой»). Именно поэтому день «Звёздных войн» фанаты этой саги празднуют 4 мая.

39. В выражении «ящик Пандоры» слово «ящик» появилось в результате неправильного перевода греческого слова πίθος. На самом деле пифосом древние греки называли большой глиняный сосуд, закапываемый в землю, в котором хранили зерно, вино, масло или хоронили людей, так что ящик Пандоры более уместно называть чашей Пандоры. Кстати, именно в пифосе, а не в бочке, жил философ Диоген Синопский, так как древние греки не умели делать бочек.

40. Термин «жёлтая пресса» возник в США в конце 19 века. К этому времени большую популярность приобрели две газеты — New York World и New York Journal, которые сделали ставку не на обычное освещение новостей, а на преподнесение читателям сенсаций и эмоциональную подачу материала. В 1895 году New York World стала публиковать комиксы Ричарда Ауткалта, полные сатиры и язвительных комментариев о политике, главным героем которых был мальчик в жёлтой рубахе. Через год Ауткалта переманили в New York Journal, и теперь уже обе газеты стали публиковать похожие комиксы. Именно поэтому журналисты более серьёзных изданий прозвали подобные газеты жёлтыми.

41. В знаменитой песне из романа Стивенсона «Остров сокровищ» поётся: «Пятнадцать человек на сундук мертвеца. Йо-хо-хо, и бутылка рому!». Логично предположить, что «Йо-хо-хо» — это хохот пиратов, однако это не так. Такой возглас использовался английскими моряками, когда им нужно было вместе одновременно приложить усилия в какой-нибудь работе — в русском языке ему соответствует фраза «Раз, два, взяли!».

42. Словом «пясть» раньше называли кисть или ладонь. Существовало и приветственное выражение «Дай пясть!», которое позже сократилось на одну букву и трансформировалось в «Дай пять!». Сокращённая фраза, предположительно, получила особенную популярность из-за схожих идиом английского языка «High five!» и «Give me five!».

43. Раньше фотографы для того, чтобы все дети на групповой фотографии смотрели в объектив, говорили: «Посмотрите сюда! Сейчас вылетит птичка!». Эта птичка была вполне реальной в начале эры массовой фотографии — правда, не живой, а латунной. В те времена камеры были далеки от совершенства, и для получения хорошего снимка люди должны были замереть в одной позе на несколько секунд. Чтобы привлечь внимание непоседливых детей, ассистент фотографа в нужный момент поднимал блестящую «птичку», которая к тому уже умела издавать трели.

44. Когда человека порицают, обвиняют в чём-нибудь, можно услышать выражение: «На него вешают собак». На первый взгляд, эта фраза абсолютно нелогична. Однако она связана вовсе не с животным, а с другим значением слова «собака» — репей, колючка — теперь почти не употребляемым.

45. Самым известным оружием индейцев является томагавк, который они умели и метать, и применять в ближнем бою. Помимо этого, ритуальные томагавки служили символом войны и мира — именно от индейцев происходит выражение «закопать топор войны». Узнав эти обычаи, европейцы скрестили это оружие с ещё одним символом — трубкой мира. Для этого рукоятку томагавка делали полой, превращая её в мундштук, а чашка трубки находилась с другой стороны от лезвия. Такие подарки были очень востребованы индейскими вождями, поддержкой которых хотели заручиться колонисты.

46. В оперетте «Свадьба в Малиновке» один из героев шутливо исказил название танца тустеп, назвав его «В ту степь». Отсюда в народе распространилось выражение «Не в ту степь» в значении «ехать не в том направлении» или «говорить невпопад».

47. В африканских диалектах португальского языка есть прямой аналог русской идиомы «заморить червячка» — «mata-bicho» («мата-бишо»), что означает «первый завтрак». Слово «mata» переводится как «убивать», а «bicho» — «червяк».

48. Выражение «малиновый звон», которым обозначают мелодичное пение колоколов, не имеет отношения ни к птице малиновке, ни к ягоде малине, а происходит от названия бельгийского города Мехелен (или Малин во французской транскрипции). Именно этот город считается европейским центром колокольного литья и музыки. Мехеленскому стандарту соответствовал первый российский карильон (музыкальный инструмент для исполнения мелодии на нескольких колоколах), заказанный Петром I во Фландрии.

49. Популярное выражение «вернуться в родные Пенаты», означающее возвращение в свой дом, к домашнему очагу, правильнее произносить по-другому: «вернуться к родным Пенатам». Дело в том, что Пенаты — это римские боги-хранители домашнего очага, и каждая семья обычно имела изображения двух Пенатов рядом с очагом.

50. Аналогом русского выражения «белая ворона» во многих европейских языках является идиома «чёрная овца». Хотя если мы называем белой вороной просто исключительного члена общества, то, называя человека чёрной овцой, европейцы намекают ещё и на нежелательность нахождения такого члена в обществе. В этом смысле идиома сближается с другим русским выражением — «паршивая овца».

51. Слово sape в переводе с французского означает «мотыга». В 16-19 веках термином «сапа» у нас обозначали способ отрытия траншеи, рва или тоннеля для приближения к укреплениям. В подкопы к стенам замков иногда закладывали бомбы из пороха, а специалисты, обученные это делать, получили название сапёров. А от скрытного рытья подкопов произошло выражение «тихой сапой», которое сегодня употребляют для обозначения осторожных и незаметных действий.

52. В английском языке есть предложение, которое используют для демонстрации возможной лексической неопределённости: ‘James while John had had had had had had had had had had had a better effect on the teacher’. Несмотря на кажущуюся бессмыслицу, оно грамматически верно, если расставить нужные знаки препинания: ‘James, while John had had «had», had had «had had»; «had had» had had a better effect on the teacher’. Перевести его на русский язык можно примерно так: «В то время, как Джон использовал ‘had’, Джеймс использовал ‘had had’; учитель предпочёл ‘had had’».

53. Выражение «толочь воду в ступе», которое обозначает занятие бесполезным делом, имеет очень древнее происхождение — его употребляли ещё античные авторы, например, Лукиан. А в средневековых монастырях оно имело буквальный характер: провинившихся монахов заставляли толочь воду в качестве наказания.

54. Королеве Франции Марии-Антуанетте приписывают фразу «Если у них нет хлеба, пусть едят пирожные!», которую она якобы произнесла, узнав, что крестьяне голодают. Но впервые эту фразу записал Жан-Жак Руссо, когда Мария-Антуанетта была ещё ребёнком. Видимо, её сказала какая-то другая королева или принцесса, но кто именно, однозначного ответа нет. Кроме того, в оригинале фразы упоминаются не пирожные, а бриоши — сладкие булки из сдобного теста с добавлением масла.

55. Откуда взялись выражения «шапочное знакомство» и «прийти к шапочному разбору»?

56. Согласно традиции, мужчины на Руси при входе в церковь снимали шапки и складывали их у входа, а по окон

ну — это… Что такое ну?

1. Вы используете слово ну, когда хотите побудить кого-либо к действию.

Ну, подойди. | Ну, давай, открывай скорее. | Ну, повернись к зеркалу ещё раз.

2. Вы используете слово ну и выражения ну и, ну уж, когда хотите выразить удивление, недоверие, иронию и т. д.

Ну и лето — сплошные дожди. | Ну и смельчак! | Ну уж рассмешил!

= вот так

3. Если кто-либо говорит (а, да) ну тебя (вас, его и т. д.) (к чёрту, к лешему и т. д.), значит, он хочет выразить отрицательное отношение к кому-либо или чему-либо, утрату интереса к ним; в разговорной речи.

Позовём Лену с собой? — А ну её! Пошли одни. | Мясо ещё не разморозилось. — Да ну его! Давай рыбу жарить.

4. Вы используете выражения ну-ну, ну-ка, когда хотите побудить кого-либо к действию.

Ну-ну, покажи, на что ты способен. | Ну-ка спой нам!

5. Вы используете выражение ну и ну, если хотите выразить своё удивление.

Ну и ну, на небе ни облачка. | Ну и ну, до чего же странная история!

1. В разговорной речи слово ну используют, когда хотят откликнуться на чьё-либо обращение, вопрос и т. д.

— Давно хотел поговорить с вами… — Ну? | — Саша! — Ну?

= что? да?

2. Вы используете слово ну, когда хотите подтвердить то, о чём вас спрашивают и выразить свою настороженность или недовольство вопросом.

Ты один был вчера? — Ну один, а что? | Вы пытались найти решение? — Ну пытался. А толку что?

= допустим, положим

3. Выражение ну как вы используете в начале вопросительного предложения, когда хотите выразить опасение насчёт чего-либо.

Ну как они не придут? | Ну как опоздаем?

4. Вы используете слово ну, когда вы хотите придать своему высказыванию большую выразительность.

Вы придёте к нам сегодня? — Ну конечно придём! | Ну разве так поступают?

5. Вы используете слово ну, когда своей фразой хотите подвести итог чему-либо, сказать о чём-либо в заключение.

Ну ладно, пора ехать. | Ну я пошёл.

6. Вы используете слово ну с последующим инфинитивом, чтобы выразить неожиданное и резкое начало действия.

От возмущения она покраснела и ну кричать. | Танька опустилась на стул и ну смеяться!

7. Вы используете выражение ну да, когда хотите утвердительно ответить на вопрос.

На свадьбу всех друзей позовешь? — Ну да, конечно. | Вы археолог? — Ну да, археолог.

8. Вы используете выражение ну да, когда хотите показать, что вы сомневаетесь в том, что вам говорят, не доверяете этому.

— Дом этот я построил своими руками. — Ну да? | — Работу я всю закончил. — Ну да? Так быстро?

9. Вы используете выражение ну да, когда хотите подчеркнуть своё нежелание делать что-либо.

Ну да, так я вам и поверил! | Завтра же мы подыщем вам комнату. — Ну да, не такой я дурак, чтобы съехать отсюда!

10. Вы используете выражение ну и что как ответ на какую-либо реплику, когда хотите сказать, что то, о чём идёт речь, не имеет для вас значения.

У меня платье запачкалось. — Ну и что, никто не заметит. | У него же есть семья! — Ну и что!

= подумаешь, неважно

11. Вы используете выражение ну и что в вопросе, когда хотите узнать дальнейшие подробности того, о чём вам рассказывают.

Она должна большую сумму денег. — Ну и что? Ты предложишь ей деньги?

Значение слова НУ-НУ. Что такое НУ-НУ?

ну-ну

1. разг. возглас, выражающий удивление, негодование, иронию, восхищение и т. п. ◆ Ну-ну, — подумал я, — вот те и «рассудка француз не имеет»… Ф. М. Достоевский, «Зимние заметки о летних впечатлениях», 1863 г. (цитата из НКРЯ) ◆ Говорили о Восточной Магистрали, вспоминали своих редакторов и секретарей, рассказывали о смешных газетных ляпсусах и всем скопом журили Ухудшанского за отсутствие в его характере журналистской жилки. Ухудшанский высоко поднимал голову и с превосходством отвечал: — «Треплетесь? Ну-ну.» ИП, «Золотой телёнок», 1931 г. (цитата из НКРЯ)

2. разг. возглас, выражающий согласие с собеседником, желание успокоить его ◆ — Это действительная правда, — сорвалось у Лужина. — Ну-ну, что же дальше? — торопила Дунечка. Ф. М. Достоевский, «Преступление и наказание», 1866 г. ◆ — Говорил я тебе? — торжествовал папочка. — Ну-ну, не сердись! — отвечала мамочка, как бы винясь, что она чересчур поторопилась папочку осрамить. М. Е. Салтыков-Щедрин, «Дурак», 1885 г. (цитата из НКРЯ) ◆ Войдя в комнату, Максим взял его за руку и ласково погладил ее. — Ну-ну, мой мальчик, — сказал он. — Я, кажется, должен просить у тебя прощения… В. Г. Короленко, «Слепой музыкант», 1886—1898 г. // «1885»

3. част. разг. употребляется при выражении запрещения, соответствуя по значению словам: не тронь! не смей! ни-ни!

4. предик. разг. обозначение побуждения к чему-либо как действия ◆ И, говоря так, горожане искоса поглядывали на суетившегося среди них Прахова. А он, возбуждённый и энергичный, властно и ласково покрикивал на них: — Ну-ну, ребятушки, дружно-о! Дружнее бери, православные! Для господа бога трудитесь. Горький, «Колокол», 1896 г. (цитата из НКРЯ) ◆ Его рука скользнула по левому боку Корейко и на некую долю секунды задержалась над парусиновым карманом миллионера-конторщика. — Ну-ну, — шептал Балаганов. — Давай, старик, давай! ИП, «Золотой телёнок», 1931 г. (цитата из НКРЯ)

Страница поддержки не найдена | Поддержка SAS

  • Решения
    • По отраслям
      • Сельское хозяйство
      • Банковское дело
      • Связь
      • Образование
      • Здравоохранение
      • Страхование
      • Науки о жизни
      • Производство
      • Государственный сектор
      • Малый бизнес
      • Мегаполис
      • Все отрасли
    • По технологиям и темам
      • Расширенная аналитика
      • AI & Machine Learning
      • Cloud
      • COVID-19
      • Data Management
      • Decisioning
      • Fraud & Security Intelligence
      • Internet of Things
      • Marketing Analytics
      • Open Integration
      • Operationalizing Analytics
      • Управление рисками
      • Все технологии и темы
    • По продуктам
      • SAS Viya
      • SAS Customer Intelligence 360 ​​
      • SAS Detection & Investigation 9 0003 SAS Model Manager
      • SAS Visual Analytics
      • SAS Visual Data Mining & Machine Learning
      • SAS Visual Forecasting
      • Все продукты
      • Пробные версии бесплатного программного обеспечения
    • По ролям
      • Разработчики
      • Пользователи
      • Соискатели
      • Партнеры
      • Малый и средний бизнес
      • Студенты и преподаватели
      • Лидеры идей
  • Попробовать / купить
    • Пробные версии бесплатного ПО
      • Среды моделирования COVID-19
      • Опыт разработчиков SAS
      • (с открытым исходным кодом) Обработка потока событий SAS в облаке SAS
      • Машинное обучение SAS
      • SAS Visual Analytics
      • SAS Visual Data Mining & Machine Learning
      • SAS Visual Statistics
      • Все испытания
    • Купить
      • Запросить демонстрацию
      • Запросить программное обеспечение
      • Связаться с представителем отдела продаж SAS Entative
    • Партнерская площадка
  • Почему SAS
    • Мнения аналитиков
    • Награды компании
    • Лидерство компании
    • Истории успеха клиентов
    • Мыслительное лидерство
    • Новости
    • Новаторские исследования и разработки
    • Новости
    • Партнерский дизайн
    • Службы поддержки мирового класса
  • Обучение
    • Обучение
      • Бесплатное обучение
      • Электронное обучение
      • Корпоративное обучение
      • SAS Academy for Data Science
      • Все обучение
      • My Training
    • Курсы
    • Программирование
    • 1
    • Программирование 2
    • SAS Enterprise Guide 1
    • SAS Programming for RUsers
    • SAS Viya Enablement
    • All Courses
  • Learning Formats
    • e-Learning
    • Live Web
    • Classroom Classroom eo Tutorials
    • Все форматы обучения
  • Вебинары
  • Сертификация
    • Базовый программист
    • Продвинутый программист
    • Data Scientist
    • Статистический бизнес-аналитик
    • 3 Preictive Modeler
    • 000 Сертификация
    • Книги
      • Для начинающих
      • Сертификация
      • Скидки
      • Предстоящие книги
      • Все книги
    • Все обучение
  • Документация
    • По продукту
      • Enterprise
      • Enterprise
      • Enterprise
      • Enterprise
      • Базовое руководство
      • SAS / STAT
      • SAS Studio
      • SAS Visual Analytics
      • Все продукты
      • Обновления программного обеспечения и изменения продуктов
    • Программирование
      • SAS 9.4 & SAS Viya
      • SAS 9.3 и более ранние версии
    • Администрирование
      • SAS
      • SAS 9.4 и более ранние версии
    • Установка и настройка
      • Центр установки
      • Системные требования
      • Стороннее программное обеспечение
      • Технические документы
      • Вся документация
    • Поддержка и услуги
      • Главная страница поддержки
      • База знаний
        • Замечания по установке
        • Замечания по проблемам
        • Замечания по использованию
        • Поиск по всем образцам
        • Образцы графики
        • Поиск по всем образцам
        • Безопасность продукта
        • Вся база знаний
      • Поддержка по продуктам
        • Базовая SAS
        • SAS Customer Intelligence 360 ​​
        • SAS Enterprise Guide
        • SAS Enterprise Miner
        • SASPy
        • ST
        • SAS Studio
        • 9000 3 SAS Visual Analytics
        • Все продукты
        • Основные направления
        • Безопасность продуктов
      • Службы поддержки
        • Техническая поддержка
        • Управление отслеживанием
        • Техническое обслуживание
        • Помощь с лицензированием 33
        • Услуги поддержки
        • Политики поддержки 900 Загрузки
          • SAS Download Manager
          • SAS Universal Viewer
      .Отладка

      — где находится окно выражения в Xcode 4?

      Переполнение стека
      1. Около
      2. Продукты
      3. Для команд
      1. Переполнение стека Общественные вопросы и ответы
      2. Переполнение стека для команд Где разработчики и технологи делятся частными знаниями с коллегами
      3. Вакансии Программирование и связанные с ним технические возможности карьерного роста
      4. Талант Нанимайте технических специалистов и создавайте свой бренд работодателя
      5. Реклама Обратитесь к разработчикам и технологам со всего мира
      6. О компании
      .Синтаксис

      в функциях — выучите Haskell на благо!

      Сопоставление с образцом

      В этой главе будут рассмотрены некоторые интересные синтаксические конструкции Haskell, и мы начнем с сопоставления с образцом. Сопоставление с шаблоном состоит из определения шаблонов, которым должны соответствовать некоторые данные, а затем проверки соответствия и деконструкции данных в соответствии с этими шаблонами.

      При определении функций вы можете определять отдельные тела функций для разных шаблонов.Это приводит к действительно аккуратному коду, простому и читаемому. Вы можете сопоставить по образцу любой тип данных — числа, символы, списки, кортежи и т. Д. Давайте создадим действительно тривиальную функцию, которая проверяет, является ли введенное нами число семеркой или нет.

      lucky :: (Integral a) => a -> Строка
      lucky 7 = "УДАЧИ НОМЕР СЕМЬ!"
      lucky x = "Извини, тебе не повезло, приятель!" 

      Когда вы вызываете lucky, шаблоны будут проверяться сверху вниз, и когда они соответствуют шаблону, будет использоваться соответствующее тело функции.Единственный способ, которым число может соответствовать первому шаблону здесь, — это если оно равно 7. Если это не так, оно попадает во второй шаблон, который соответствует чему-либо и привязывает его к x. Эта функция также могла быть реализована с помощью оператора if. Но что, если нам нужна функция, которая говорит числа от 1 до 5 и говорит «Не между 1 и 5» для любого другого числа? Без сопоставления с образцом нам пришлось бы создать довольно запутанное дерево if then else. Однако с ним:

      sayMe :: (Интеграл a) => a -> Строка
      sayMe 1 = "Один!"
      sayMe 2 = "Два!"
      sayMe 3 = "Три!"
      sayMe 4 = "Четыре!"
      sayMe 5 = "Пять!"
      sayMe x = "Не между 1 и 5"
       

      Обратите внимание, что если мы переместим последний шаблон (всеобъемлющий) наверх, он всегда будет говорить «Не между 1 и 5», потому что он улавливает все числа, и у них не будет шанса провалиться и проверьте наличие других шаблонов.

      Помните факториальную функцию, которую мы реализовали ранее? Мы определили факториал числа n как произведение [1..n]. Мы также можем определить факториальную функцию рекурсивно , как это обычно определяется в математике. Мы начинаем с того, что факториал 0 равен 1. Затем мы утверждаем, что факториал любого положительного целого числа — это целое число, умноженное на факториал его предшественника. Вот как это выглядит в терминах Haskell.

      факториал :: (Интеграл a) => a -> a
      факториал 0 = 1
      факториал n = n * факториал (n - 1)
       

      Это первый раз, когда мы определили функцию рекурсивно.Рекурсия важна в Haskell, и мы подробнее рассмотрим ее позже. Но вкратце, вот что произойдет, если мы попытаемся получить факториал, скажем, 3. Он пытается вычислить 3 * факториал 2. Факториал 2 равен 2 * факториал 1, поэтому сейчас у нас есть 3 * (2 * факториал 1). факториал 1 равен 1 * факториалу 0, поэтому мы имеем 3 * (2 * (1 * факториал 0)). А теперь уловка — мы определили факториал 0 равным 1, и поскольку он встречает этот шаблон до универсального, он просто возвращает 1.Таким образом, окончательный результат эквивалентен 3 * (2 * (1 * 1)). Если бы мы написали второй шаблон поверх первого, он поймал бы все числа, включая 0, и наши вычисления никогда не завершились бы. Вот почему порядок важен при указании шаблонов, и всегда лучше указывать сначала наиболее конкретные, а затем более общие.

      Сопоставление с образцом также может быть неудачным. Если мы определим такую ​​функцию:

      charName :: Char -> Строка
      charName 'a' = "Альберт"
      charName 'b' = "Брозеф"
      charName 'c' = "Сесил"
       

      , а затем попробуйте вызвать его с вводом, которого мы не ожидали, вот что происходит:

      ghci> charName 'a'
      "Альберт"
      ghci> charName 'b'
      "Брозеф"
      ghci> charName 'h'
      «*** Исключение: тут.hs: (53,0) - (55,21): Неполные шаблоны в функции charName
       

      Он жалуется на то, что у нас есть неполные шаблоны, и это правильно. При создании шаблонов мы всегда должны включать универсальный шаблон, чтобы наша программа не аварийно завершила работу, если мы получим неожиданный ввод.

      Сопоставление с образцом также можно использовать для кортежей. Что, если бы мы хотели создать функцию, которая берет два вектора в двухмерном пространстве (в форме пар) и складывает их вместе? Чтобы сложить два вектора, мы отдельно складываем их компоненты x, а затем отдельно их компоненты y.Вот как бы мы это сделали, если бы не знали о сопоставлении с образцом:

      addVectors :: (Num a) => (a, a) -> (a, a) -> (a, a)
      addVectors a b = (fst a + fst b, snd a + snd b)
       

      Что ж, это работает, но есть способ лучше. Давайте изменим функцию так, чтобы она использовала сопоставление с образцом.

      addVectors :: (Num a) => (a, a) -> (a, a) -> (a, a)
      addVectors (x1, y1) (x2, y2) = (x1 + x2, y1 + y2)
       

      Ну вот! Намного лучше. Обратите внимание, что это уже универсальный шаблон.Тип addVectors (в обоих случаях) — addVectors :: (Num a) => (a, a) -> (a, a) -> (a, a), поэтому мы гарантированно получим две пары в качестве параметров.

      fst и snd извлекают компоненты пар. А как насчет троек? Что ж, для этого не предусмотрено никаких функций, но мы можем создать свои собственные.

      первый :: (a, b, c) -> a
      первый (х, _, _) = х
      
      второй :: (a, b, c) -> b
      второй (_, y, _) = y
      
      третий :: (a, b, c) -> c
      третий (_, _, z) = z
       

      Символ _ означает то же самое, что и при составлении списка.Это означает, что нам действительно все равно, что это за часть, поэтому мы просто пишем _.

      Что напомнило мне, вы также можете сопоставить шаблон в понимании списка. Проверьте это:

      ghci> пусть xs = [(1,3), (4,3), (2,4), (5,3), (5,6), (3,1)]
      ghci> [a + b | (а, б)
       

      Если сопоставление с шаблоном не удалось, он просто перейдет к следующему элементу.

      Сами списки также могут использоваться в сопоставлении с образцом. Вы можете сопоставить пустой список [] или любой шаблон, который включает: и пустой список.Но поскольку [1,2,3] - это просто синтаксический сахар для 1: 2: 3: [], вы также можете использовать предыдущий шаблон. Такой шаблон, как x: xs, привяжет заголовок списка к x, а остальную часть к xs, даже если есть только один элемент, поэтому xs будет пустым списком.

      Примечание : шаблон x: xs используется часто, особенно с рекурсивными функциями. Но шаблоны, содержащие: в них, соответствуют только спискам длиной 1 или более.

      Если вы хотите связать, скажем, первые три элемента с переменными, а остальную часть списка с другой переменной, вы можете использовать что-то вроде x: y: z: zs.Он будет соответствовать только спискам, содержащим три или более элементов.

      Теперь, когда мы знаем, как сопоставить шаблон со списком, давайте создадим нашу собственную реализацию функции head.

      голова ':: [а] -> а
      head '[] = error "Невозможно вызвать head для пустого списка, пустышка!"
      голова '(x: _) = x
       

      Проверяем, работает ли:

      ghci> голова '[4,5,6]
      4
      ghci> head '"Привет"
      'ЧАС'
       

      Приятно! Обратите внимание, что если вы хотите привязать к нескольким переменным (даже если одна из них просто _ и на самом деле вообще не связывает), мы должны заключить их в круглые скобки.Также обратите внимание на функцию ошибок, которую мы использовали. Он принимает строку и генерирует ошибку времени выполнения, используя эту строку как информацию о том, какая ошибка произошла. Это приводит к сбою программы, поэтому не стоит ее слишком часто использовать. Но вызывать голову в пустом списке не имеет смысла.

      Давайте создадим тривиальную функцию, которая сообщает нам некоторые из первых элементов списка в (не) удобной английской форме.

      tell :: (Show a) => [a] -> String
      tell [] = "Список пуст"
      tell (x: []) = "В списке один элемент:" ++ show x
      tell (x: y: []) = "Список состоит из двух элементов:" ++ show x ++ "и" ++ show y "
      tell (x: y: _) = "Этот список длинный.Первые два элемента: «++ show x ++» и «++ show y».
       

      Эта функция безопасна, поскольку она обрабатывает пустой список, одноэлементный список, список с двумя элементами и список с более чем двумя элементами. Обратите внимание, что (x: []) и (x: y: []) можно переписать как [x] и [x, y] (поскольку это синтаксический сахар, нам не нужны круглые скобки). Мы не можем переписать (x: y: _) с квадратными скобками, потому что он соответствует любому списку длиной 2 или более.

      Мы уже реализовали нашу собственную функцию длины, используя понимание списка.Теперь мы сделаем это, используя сопоставление с образцом и небольшую рекурсию:

      length ':: (Num b) => [a] -> b
      длина '[] = 0
      длина '(_: xs) = 1 + длина' xs 

      Это похоже на функцию факториала, которую мы написали ранее. Сначала мы определили результат известного ввода - пустой список. Это также известно как краевое условие. Затем во втором шаблоне мы разбираем список, разделяя его на голову и хвост. Мы говорим, что длина равна 1 плюс длина хвоста. Мы используем _ для сопоставления головы, потому что нам все равно, что это такое.Также обратите внимание, что мы позаботились обо всех возможных шаблонах списка. Первый шаблон соответствует пустому списку, а второй соответствует чему-либо, кроме пустого списка.

      Давайте посмотрим, что произойдет, если мы назовем length для "ham". Во-первых, он проверит, пустой ли это список. Поскольку это не так, это относится ко второму шаблону. Он совпадает со вторым шаблоном, и там написано, что длина равна 1 + длина «am», потому что мы разбили его на голову и хвост, а голову отбросили. Хорошо. Длина «am» аналогичным образом равна 1 + длина «m».Итак, прямо сейчас у нас есть 1 + (1 + длина '"м"). длина '"м" равна 1 + длина' "" (также может быть записана как 1 + длина '[]). И мы определили length '[] равным 0. Итак, в итоге мы имеем 1 + (1 + (1 + 0)).

      Реализуем сумму. Мы знаем, что сумма пустого списка равна 0. Мы записываем это как образец. И мы также знаем, что сумма списка - это заголовок плюс сумма остальной части списка. Итак, если мы запишем это, мы получим:

      sum ':: (Num a) => [a] -> a
      сумма '[] = 0
      сумма '(x: xs) = x + сумма' xs
       

      Также есть штука под названием как образцы .Это удобный способ разбить что-то в соответствии с шаблоном и привязать его к именам, сохраняя при этом ссылку на все это. Вы делаете это, помещая имя и @ перед шаблоном. Например, шаблон xs @ (x: y: ys). Этот шаблон будет соответствовать точно так же, как x: y: ys, но вы можете легко получить весь список через xs вместо того, чтобы повторяться, снова набрав x: y: ys в теле функции. Вот быстрый и грязный пример:

      capital :: String -> String
      capital "" = "Пустая строка, упс!"
      capital all @ (x: xs) = "Первая буква" ++ all ++ "-" ++ [x]
       
      ghci> столица "Дракула"
      «Первая буква Дракулы - D»
       

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

      Еще одна вещь - нельзя использовать ++ в сопоставлении с образцом. Если вы попытаетесь сопоставить шаблон с (xs ++ ys), что будет в первом, а что - во втором списке? В этом нет особого смысла. Было бы разумно сопоставлять данные с (xs ++ [x, y, z]) или просто (xs ++ [x]), но из-за природы списков вы не можете этого сделать.

      Охрана, охрана!

      В то время как шаблоны - это способ убедиться, что значение соответствует некоторой форме, и деконструировать его, охранники - это способ проверить, истинно или ложно какое-то свойство значения (или несколько из них).Это очень похоже на оператор if и очень похоже. Дело в том, что охранники намного более читабельны, когда у вас есть несколько условий, и они действительно хорошо работают с паттернами.

      Вместо того, чтобы объяснять их синтаксис, давайте просто погрузимся в работу и создадим функцию с помощью охранников. Мы собираемся сделать простую функцию, которая будет ругать вас по-разному в зависимости от вашего ИМТ (индекса массы тела). Ваш ИМТ равен вашему весу, разделенному на квадрат роста. Если ваш ИМТ меньше 18,5, ваш вес считается недостаточным.Если где-то от 18,5 до 25, значит, ты нормальный. От 25 до 30 лет - избыточный вес, а от 30 - ожирение. Итак, вот функция (мы не будем ее вычислять прямо сейчас, эта функция просто получает ИМТ и сообщает вам об этом)

      bmiTell :: (RealFloat a) => a -> Строка
      bmiСкажите bmi
          | bmi <= 18.5 = "У тебя недостаточный вес, эмо, ты!"
          | bmi <= 25.0 = "Ты вроде нормальный. Пффф, держу пари, ты уродливый!"
          | bmi <= 30.0 = "Ты толстый! Худей, жирный!"
          | else = "Ты кит, поздравляю!"
       

      Охранники обозначаются трубками, которые следуют за именем функции и ее параметрами.Обычно они смещены немного вправо и выровнены. Страж - это, по сути, логическое выражение. Если он принимает значение True, используется соответствующее тело функции. Если он оценивается как False, проверка переходит к следующему охраннику и так далее. Если мы вызовем эту функцию с 24,3, она сначала проверит, меньше или равно 18,5. Поскольку это не так, он попадает к следующему охраннику. Проверка выполняется со вторым охранником, и поскольку 24,3 меньше 25,0, возвращается вторая строка.

      Это очень напоминает большое дерево if else в императивных языках, только оно намного лучше и читабельнее. Хотя большие деревья if else обычно не одобряются, иногда проблема определяется таким дискретным образом, что вы не можете их обойти. Охранники - очень хорошая альтернатива для этого.

      Часто последний охранник поступает иначе. в противном случае определяется просто как иначе = True и ловит все. Это очень похоже на шаблоны, только они проверяют, удовлетворяет ли ввод шаблону, а охранники проверяют логические условия.Если все средства защиты функции оцениваются как False (и мы не предусмотрели в противном случае универсальную защиту), оценка переходит к следующему шаблону . Вот как хорошо сочетаются паттерны и охранники. Если подходящие ограждения или шаблоны не найдены, выдается ошибка.

      Конечно, мы можем использовать охранников с функциями, которые принимают столько параметров, сколько мы хотим. Вместо того, чтобы заставлять пользователя вычислять свой собственный ИМТ перед вызовом функции, давайте изменим эту функцию так, чтобы она принимала рост и вес и вычисляла их за нас.2 <= 30.0 = "Ты толстый! Худей, жирный!" | else = "Ты кит, поздравляю!"

      Давай посмотрим, толстею ли я ...

      ghci> bmiTell 85 1.90
      «Ты предположительно нормальный. Пффф, держу пари, ты уродлив!»
       

      Ура! Я не толстый! Но Хаскелл просто назвал меня уродливым. Без разницы!

      Обратите внимание, что сразу после имени функции и ее параметров перед первым охранником нет =. Многие новички получают синтаксические ошибки, потому что иногда помещают их туда.

      Еще один очень простой пример: давайте реализуем нашу собственную функцию max. Если вы помните, он берет две вещи, которые можно сравнить, и возвращает большую из них.

      max ':: (Порядок а) => а -> а -> а
      макс 'а б
          | а> б = а
          | в противном случае = b
       

      Guards также может быть написан inline, хотя я бы не советовал этого делать, потому что он менее читабелен даже для очень коротких функций. Но для демонстрации мы могли бы написать max 'вот так:

      max ':: (Порядок а) => а -> а -> а
      max 'a b | а> Ь = а | в противном случае = b
       

      Ух! Совсем не очень читабельно! Продолжаем: давайте реализуем наше собственное сравнение, используя охранников.

      myCompare :: (Ord a) => a -> a -> Заказ
      а `myCompare` б
          | а> b = GT
          | а == б = эквалайзер
          | в противном случае = LT
       
      ghci> 3 `myCompare` 2
      GT
       

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

      Где !?

      В предыдущем разделе мы определили функцию калькулятора ИМТ и бератор следующим образом:

      bmiTell :: (RealFloat a) => a -> a -> Строка
      bmiTell вес рост
          | вес / рост ^ 2 <= 18.2 <= 30.0 = "Ты толстый! Худей, жирный!"
          | else = "Ты кит, поздравляю!"
       

      Обратите внимание, что мы повторяемся здесь три раза. Повторяемся трижды. Повторяться (трижды) во время программирования так же желательно, как получить удар ногой по голове. Поскольку мы повторяем одно и то же выражение трижды, было бы идеально, если бы мы могли вычислить его один раз, привязать его к имени и затем использовать это имя вместо выражения. Что ж, мы можем изменить нашу функцию так:

      bmiTell :: (RealFloat a) => a -> a -> Строка
      bmiTell вес рост
          | bmi <= 18.2
       

      Мы помещаем ключевое слово там, где после охранников (обычно лучше делать отступы так же, как отступы труб), а затем мы определяем несколько имен или функций. Эти имена видны охранникам и дают нам то преимущество, что нам не нужно повторяться. Если мы решим, что хотим рассчитать ИМТ немного иначе, нам нужно изменить его только один раз. Это также улучшает читаемость, давая имена вещам, и может ускорить наши программы, поскольку такие вещи, как наша переменная bmi, здесь вычисляется только один раз.2 скинни = 18,5 нормальный = 25,0 жир = 30,0

      Имена, которые мы определяем в разделе where функции, видны только этой функции, поэтому нам не нужно беспокоиться о том, что они загрязняют пространство имен других функций. Обратите внимание, что все имена выровнены по одному столбцу. Если мы не выровняем их красиво и правильно, Haskell запутается, потому что тогда он не знает, что все они являются частью одного блока.

      , где привязки не используются совместно между телами функций разных шаблонов.2 (худой, нормальный, толстый) = (18,5, 25,0, 30,0)

      Давайте сделаем еще одну довольно тривиальную функцию, в которой мы получаем имя и фамилию и возвращаем кому-то их инициалы.

      инициалы :: String -> String -> String
      инициалы имя фамилия = [f] ++ "." ++ [l] ++ "."
          где (f: _) = имя
                (l: _) = фамилия
       

      Мы могли бы сделать это сопоставление с образцом непосредственно в параметрах функции (на самом деле это было бы короче и яснее), но это просто показывает, что это можно сделать и в привязках where.2

      Вот и все! Причина, по которой нам пришлось ввести bmi как функцию в этом примере, заключается в том, что мы не можем просто вычислить один BMI из параметров функции. Мы должны изучить список, переданный функции, и там есть свой ИМТ для каждой пары.

      , где также могут быть вложены привязки . Распространенная идиома - создать функцию и определить некоторую вспомогательную функцию в ее предложении where , а затем предоставить этим функциям вспомогательные функции, каждая со своим собственным предложением where .

      Пусть будет

      Очень похоже на то, где привязки позволяют привязкам. Где привязки - это синтаксическая конструкция, которая позволяет вам выполнять привязку к переменным в конце функции, и вся функция может видеть их, включая всех охранников. Пусть привязки позволяют вам связываться с переменными где угодно и сами по себе являются выражениями, но являются очень локальными, поэтому они не охватывают охранников. Как и любая конструкция в Haskell, которая используется для привязки значений к именам, привязки let могут использоваться для сопоставления с образцом.2 in sideArea + 2 * topArea

      Форма let в . Имена, которые вы определяете в части let , доступны для выражения после в части . Как видите, мы также могли определить это с помощью , где привязка . Обратите внимание, что имена также выровнены в одном столбце. Так в чем разница между ними? На данный момент просто кажется, что let сначала помещает привязки, а выражение, которое их использует позже, тогда как , где — наоборот.

      Разница в том, что let привязки сами по себе являются выражениями. , где привязки — это просто синтаксические конструкции. Помните, когда мы делали оператор if, и было объяснено, что оператор if else — это выражение, и вы можете втиснуть его почти куда угодно?

      ghci> [если 5> 3, то «Ву», иначе «Бу», если 'a'> 'b', то «Фу», иначе «Бар»]
      ["Ву", "Бар"]
      ghci> 4 * (если 10> 5, то 10, иначе 0) + 2
      42
       

      Вы также можете сделать это с помощью привязок let.

      ghci> 4 * (пусть a = 9 в a + 1) + 2
      42
       

      Их также можно использовать для введения функций в локальной области:

      ghci> [пусть квадрат x = x * x in (квадрат 5, квадрат 3, квадрат 2)]
      [(25,9,4)]
       

      Если мы хотим выполнить привязку к нескольким встроенным переменным, мы, очевидно, не сможем выровнять их по столбцам. Вот почему мы можем разделить их точкой с запятой.

      ghci> (let a = 100; b = 200; c = 300 в a * b * c, let foo = "Hey"; bar = "there!" в foo ++ bar)
      (6000000, «Привет!»)
       

      Вам не нужно ставить точку с запятой после последней привязки, но вы можете, если хотите.Как мы уже говорили ранее, вы можете сопоставить шаблон с привязками let . Они очень полезны для быстрого разделения кортежа на компоненты и привязки их к именам и тому подобному.

      ghci> (let (a, b, c) = (1,2,3) in a + b + c) * 100
      600
       

      Вы также можете поместить привязки let в состав списков. Давайте перепишем наш предыдущий пример расчета списков пар вес-рост, чтобы использовать let внутри понимания списка вместо определения вспомогательной функции с , где .2]

      Мы включаем let внутрь понимания списка так же, как и предикат, только он не фильтрует список, а только привязывается к именам. Имена, определенные в let внутри понимания списка, видны функции вывода (часть перед |) и всем предикатам и разделам, которые идут после привязки. Таким образом, мы могли бы заставить нашу функцию возвращать только ИМТ толстых людей:

      calcBmis :: (RealFloat a) => [(a, a)] -> [a]
      calcBmis xs = [bmi | (w, h) <- xs, пусть bmi = w / h ^ 2, bmi> = 25.0]
       

      Мы не можем использовать имя bmi в части (w, h) <- xs, потому что оно определено до привязки let .

      Мы пропустили в части привязки let , когда мы использовали их в составлении списков, потому что видимость имен там уже предопределена. Однако мы могли бы использовать let в привязке в предикате, и определенные имена были бы видимы только для этого предиката. в части также можно опустить при определении функций и констант непосредственно в GHCi.Если мы это сделаем, то имена будут видны на протяжении всего интерактивного сеанса.

      ghci> пусть zoot x y z = x * y + z
      ghci> зут 3 9 2
      29
      ghci> пусть загрузка x y z = x * y + z в загрузке 3 4 2
      14
      ghci> загрузка
      : 1: 0: Не входит в область действия: `boot '
       

      Если let привязки — это так здорово, почему бы не использовать их все время вместо , где привязки , спросите вы? Что ж, поскольку привязки let являются выражениями и довольно локальны по своей области действия, их нельзя использовать через охранников.Некоторые люди предпочитают , где привязки , потому что имена идут после функции, в которой они используются. Таким образом, тело функции ближе к ее имени и объявлению типа, а некоторые более читабельны.

      Выражения регистра

      Многие императивные языки (C, C ++, Java и т. Д.) Имеют синтаксис регистра, и если вы когда-либо программировали на них, вы, вероятно, знаете, о чем он. Речь идет о том, чтобы взять переменную и затем выполнить блоки кода для определенных значений этой переменной, а затем, возможно, включить общий блок кода на случай, если переменная имеет какое-то значение, для которого мы не настраивали случай.

      Haskell берет эту концепцию и развивает ее. Как следует из названия, выражения case — это, в общем, выражения, очень похожие на выражения if else и привязки let и . Мы можем не только оценивать выражения на основе возможных случаев значения переменной, мы также можем выполнять сопоставление с образцом. Хммм, взять переменную, сопоставить ее с образцом, оценить фрагменты кода на основе ее значения, где мы слышали это раньше? Ах да, сопоставление с образцом параметров в определениях функций! Ну, на самом деле это просто синтаксический сахар для case-выражений.Эти две части кода делают то же самое и взаимозаменяемы:

      голова ':: [а] -> а
      head '[] = error "Нет заголовка для пустых списков!"
      голова '(x: _) = x
       
      голова ':: [а] -> а
      head 'xs = case xs of [] -> ошибка «Нет заголовка для пустых списков!»
                            (х: _) -> х
       

      Как видите, синтаксис case-выражений довольно прост:

      case выражение шаблона -> результат
                         шаблон -> результат
                         шаблон -> результат
                         ...
       
      Выражение

      сопоставляется с образцами. Действие сопоставления шаблонов такое же, как и ожидалось: используется первый шаблон, соответствующий выражению. Если он не проходит через все выражение case и подходящий шаблон не найден, возникает ошибка времени выполнения.

      В то время как сопоставление с образцом в параметрах функции может выполняться только при определении функций, выражения case можно использовать практически везде. Например:

      descriptionList :: [a] -> Строка
      descriptionList xs = "Список пуст" ++ case xs of [] -> "."
                                                     [x] -> "одноэлементный список".
                                                     хз -> "более длинный список".
       

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

      descriptionList :: [a] -> Строка
      descriptionList xs = "Список есть" ++ what xs
          где what [] = "пусто."
                what [x] = "одноэлементный список".
                what xs = "более длинный список".
       
      .

      Еще 10 английских выражений со словом KNOW — Espresso English


      Подробнее о курсе идиом

      # 1 — насколько я знаю

      Это выражение означает «согласно имеющейся у меня информации», но подразумевает неуверенность, как будто у вас на самом деле не так много информации.

      Я не ем те грибы, которые вы нашли в лесу. Насколько я знаю, они могут быть ядовитыми .

      # 2 — знай свое дело

      Если кто-то знает свое дело, означает, что этот человек очень хорошо осведомлен и квалифицирован в этой области.

      Этот плотник действительно знает свое дело , потому что у него 30-летний опыт работы.

      # 3 — знай свое дело

      Для знать упражнение означает знать стандартную процедуру или то, что предполагается делать.

      Николь организовывала последние три конференции, поэтому она знает, что делать.

      # 4 — знай, где ты стоишь

      Для знать, где вы находитесь. означает знать ваше текущее положение / ситуацию.

      Я знаю, где я нахожусь , и я не уполномочен принимать это решение без консультации с директором.

      # 5 — нужно знать один

      Эта фраза используется, чтобы оскорбить кого-то, говоря, что он такой же, как и другой человек, которого они критикуют / обвиняют / жалуются.

      Боб говорит, что Джон — лицемер, но нужно знать одного.
      (= Боб тоже лицемер)

      # 6 — вы не знаете и половины

      Это выражение означает, что кто-то знает лишь небольшую часть ситуации, но есть гораздо более серьезная проблема, о которой они не знают.

      «Я слышал, что в последнее время ты был немного занят на работе».
      «О, , ты и половины не знаешь! Мало того, что я работал по 60 часов в неделю, мои дети заболели, а дом нуждался в срочном ремонте ».

      # 7 — не знаю, что ударило (кого-то)

      Если кто-то не знает, что его поразило , это означает, что он очень удивлен и шокирован неожиданным событием, которое оказывает на него большое негативное влияние.

      Когда жена бросила меня без причины, я не знал, что меня ударило. У меня создалось впечатление, что наши отношения в порядке.

      # 8 — без границ

      Это выражение описывает то, что есть или кажется неограниченным.

      Она всегда придумывает новые идеи. Ее творчество не знает границ.

      # 9 — Что он знает?

      Этот вопрос используется, чтобы сказать, что кто-то ничего НЕ знает по определенной теме.

      Я бы хотел, чтобы мой брат перестал давать мне советы по воспитанию детей. Что он знает? У него даже нет детей.

      # 10 — Кто знает?

      Это выражение означает, что никто , вероятно, не знает ответа.

      «На какой срок задерживается этот рейс?»
      Кто знает? Думаю, это зависит от того, как долго идет дождь ».

      .
      0 0 vote
      Article Rating
Подписаться
Уведомление о
guest
0 Комментарий
Inline Feedbacks
View all comments