LINUX.ORG.RU
ФорумTalks

Лямбда-выражения для идиота


2

5

В последнее время только и слышу о новых ЯП с поддержкой лямбда-выражений, это что - мода такая или оно действительно резко стало нужно?

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

Ответ на: комментарий от alpha

> Так что если вы со shty немного смените тон, то выясните, что не противоречите друг другу, просто говорите о двух сторонах одного комплексного подхода.

Справедливости ради:

mclaudt> Это две стороны никак друг другу не противоречат.

tailgunner ★★★★★
()
Ответ на: комментарий от alpha

>>Вообще как всегда любой категоричный подход неверен.

Слишком категоричное утверждение, чтобы быть верным.

Аналогии и параллели на уровне абстрактных конструкций работают не хуже.

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

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

А чего сложного-то?

mclaudt
()
Ответ на: комментарий от kermzyxer

Да хз, нужно или нет. Вот было же, я и призадумался..

gandjubas
()
Ответ на: комментарий от kermzyxer

> про лямбда-функции

Если вы про анонимные функции, то с моей, далекой от программирования точки зрения, это выглядит так:
Можно писать f(x) := x^3
А потом везде говорить - «функция f(x) монотонна» или там «если продифференцировать функцию f(x) мы получим 3x^2»

А можно этого не писать, а говорить:
«функция возведения числа в куб монотонна» или «если продифференцировать функцию возведения числа в куб мы получим 3x^2»

Короче говоря в случае лямбда-функции название или обозначение функции является её определением. Или правильнее определение функции является её названием.

А если вы про всякие умные слова по теме, то это не ко мне :)

alpha ★★★★★
()
Ответ на: комментарий от alpha

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

Я отрицаю только нужность shty и его некомпетентных, неаргументированных, полных свинской безграмотности выпадов на конструктивистов.

mclaudt
()
Ответ на: комментарий от alpha

>>представить себе две двумерные сферы трансверсально пересекающиеся по одной точке

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

mclaudt
()
Ответ на: комментарий от SebastianPoeiro

Когда в ЯП со сборщиком мусора кодеркам хоть каким то боком надо иметь дело со сборщиком мусора, там ручками его дергать, запускать когда прижимает - все это свидетельствует только о двух вещах:

1. Говяности кодерка
2. Говяности реализации Сборщика мусора в ЯП

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

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

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

3. Плохая координация между системой виртуальной памяти операционной системы и механизмом сборки мусора в виртуальной машине.

sign
()
Ответ на: комментарий от mclaudt

> Я к тому что это просто две окружности на колесной шине. Одна по внутреннему ободу, а другая - опоясывающая. Я не прав?

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

Хотя вообще картинка хороша, надо было какой-нибудь поизвращеннее пример придумать. :)

alpha ★★★★★
()
Ответ на: комментарий от RedPossum

>И вот тут вернёмся к лямбдам, я так и не понял какие специфические для них проблемы они решают, да так что уделывают классические методы классов/функции, как компараторы уделывают for/if в вашей задаче?

Проблемы дубликации кода. Пример который я привел посредством for/if решается путем кода который идентичен с точностью до условия в if. Введением абстракции filter по предикату уменьшается страшный дубляж кода.

r ★★★★★
()
Ответ на: комментарий от alpha

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

a shty ничего толком и не говорил вразумительно, за него вон другим приходится его калу форму придавать осмысленную.

mclaudt
()
Ответ на: комментарий от gandjubas

>За точность не ручаюсь, но..

Я предложил ее решить - а не натйти qsort. И второе - внимательнее прочитай задачу. И третье - это твое макро-фу - это попытка реализовать ненужные тебе лямбды для бедных.

И тут ремарочка: задача настолько редка


Сортировка - редкая задача? Исследование списка - редкая задача? Трансформация списка - редкая задача?

r ★★★★★
()
Ответ на: комментарий от gandjubas

>Что не так?

Процессоров 4. Сколько N?

r ★★★★★
()
Ответ на: комментарий от mclaudt

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

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


Вот тот же Фейнман, например, был в душе геометр. Ему так хотелось найти геометрию там где её нет, что он даже диаграммы научился рисовать. Хотя на самом деле каждая диаграмма - это просто большое выражение с кучей слагаемых.

А вот какой-нибудь Дирак наверное был не такой и ему нравилось работать с формулами, чем с картинками или с людьми. Ну и кто из них более велик и достоин? Да оба хороши.

Хотя надо признать, что книжки у «геометров» получаются лучше :)

alpha ★★★★★
()
Ответ на: комментарий от alpha

>>Хотя вообще картинка хороша

Разумеется, если шина кажется слишком à la moujique, можно заменить ее чистеньким тором.

mclaudt
()
Ответ на: комментарий от gandjubas

>Как с этим?

RabbitMQ, eJabberd, CauchoDB смотрят на таких парнишей....

r ★★★★★
()
Ответ на: комментарий от alpha

>>А вот какой-нибудь Дирак наверное был не такой и ему нравилось работать с формулами, чем с картинками или с людьми.

Геометр, и еще какой! Не устаю приводить его пример с теорией кос.

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

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

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

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

Это и есть та математическая теорема, о которой идет речь, которую Дирак и доказал. Дирак изготовил эти сферы и среднюю сжег. Сферы оказались соединенными незавязанными веревками, и физики поверили в теорию спина. Так он это и доказал.

mclaudt
()
Ответ на: комментарий от mclaudt

> Дирак заметил, исходя из топологии семейства эллиптических кривых в алгебраической геометрии, что в группе сферических кос из четырех нитей существует элемент второго порядка, и интерпретировал это свое открытие в виде теории спина электрона, имеющего 2 значения

Что-то как-то тут заметил сначала, а геометрически интерпретировал потом получается.

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

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

alpha ★★★★★
()
Ответ на: комментарий от alpha

Ну так разумеется, за столько-то лет можно научиться абстрагироваться.

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

mclaudt
()
Ответ на: комментарий от mclaudt

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

mclaudt
()
Ответ на: комментарий от alpha

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

iVS ★★★★★
()
Ответ на: комментарий от mclaudt

верни сейчас
даже школота не поменяла, а ты опустился, ну как же так? :D:D

Sonsee
()
Ответ на: комментарий от iVS

Где кто чего забывает?

В теории чисел никто и не берется утверждать что-то только на интуиции.

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

mclaudt
()
Ответ на: комментарий от mclaudt

Интуиции и аналогии там настолько мало, что ни в какое сравнение не идет с геометрией. Тот же Фейнман до многих геометрических соотшений доходил без доказательств, на одной только интуиции. Все зависит от области. Где-то смело можно доверять аналогии, а где-то она ничего не даст.

iVS ★★★★★
()
Ответ на: комментарий от iVS

>>Интуиции и аналогии там настолько мало, что ни в какое сравнение не идет с геометрией.

Рамануджан как-то же допер до всего сам. Были и ошибки, но какой-то читерский образ он несомненно держал в уме. Тут http://www.ega-math.narod.ru/Rama/Rama1.djv описано, как Харди пытался выцепить этот образ у гения.

mclaudt
()
Ответ на: комментарий от mclaudt

Рамануджан сделал ошибки в _аналитической_ теории чисел. Об этом написано и в «Рамануджан - математический гений Индии» Левина, и в «Двенадцать лекций о Рамануджане» Харди. Многие открытия Рамануждан делал интуитивно, но ни до, ни после него никто так не умел. Но еще больше он доходил до соотношений эмпирическим путем.

iVS ★★★★★
()
Ответ на: комментарий от mclaudt

http://www.ega-math.narod.ru/Rama/Rama1.djv описано, как Харди пытался выцепить этот образ у гения.

И нечего кидать ссылку на Левина, когда сам Харди написал гораздо больше про Рамануджана. В общем, ты не в теме, да еще вместо полного прочтения прошелся по только вершкам. Так что, не гони.

iVS ★★★★★
()
Ответ на: комментарий от iVS

Пруфы? Мои высказывания противоречат твоим? По голове себя стукни.

Многие открытия Рамануждан делал интуитивно, но ни до, ни после него никто так не умел. Но еще больше он доходил до соотношений эмпирическим путем.

Ты пьян? Эмпирически и интуитивно - ортогональные понятия?

mclaudt
()
Ответ на: комментарий от iVS

>>Рамануджан сделал ошибки в _аналитической_ теории чисел.

И что? Cравнивая со всем объемом правильных результатов, становится ясно, что образ какой-то у него вспомогательный был.

Хотя это не противоречит утверждению, что еще он был хорошим счетчиком и многие теоремы видел и угадывал (иногда ошибочно) по их частным случаям для конкретных чисел.

mclaudt
()
Ответ на: комментарий от mclaudt

>>Рамануджан сделал ошибки в _аналитической_ теории чисел.

И что? Cравнивая со всем объемом правильных результатов, становится ясно, что образ какой-то у него вспомогательный был.

Если не знаешь, о чем говоришь, молчал бы. У Рамануждана было три заключения в _аналитической_ теории чисел, и все три были _ошибочными_. Другие результы были безупречны. Какой еще «вспомогательный образ»? Вот уж не знаешь о чем, а споришь. Рамануджан не мог объяснить, откуда у него бывают прозрения, многие из них являлись во сне. Так и скажем, что использовал вспомогательный образ во сне. Аффтар жжот, пиши исчо.

iVS ★★★★★
()
Ответ на: комментарий от gandjubas

А вы этот ваш эрланг на продакшене используете?

Ваша наблюдательность продолжает верно служить вам (с)

И как он у вас не падает?

Эрланг ориентирован на отказоустойчивость, кластеризацию, реалтайм. Поэтому заставить систему «падать» можно только если этого сильно захотеть:

  • kill -9
  • долбить CTRL+C в консоли erl
  • очень криво реализовать некоторые функции проекта на чистом С и вызывать их неизолированно от рантайма (NIF)
  • съесть всю память

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

Если падение НЕ связано с работой собственного кода, то подозреваю какой-то бородатый баг с epmd (демон, запускаемый рантаймом при старте, для автоматической кластеризации), какой-то баг среды, проблемы с ulimit/selinux/etc. Вообще конечно интересная проблема, хотелось бы по-больше узнать об этом. Но у нас такого не наблюдалось, аптайм обычно равен времени работы сервера.

shahid ★★★★★
()

> Поясните пожалуйста мне смысл сабжа и область его применения.

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

Вики читал, но там как всегда мудрено написано.


Советую почитать виковское описание промисов и фьючерсов. Тривиальные вещи описаны так, чтобы гарантированно взорвать мозг.

Vit ★★★★★
()
Ответ на: комментарий от iVS

>>У Рамануждана было три заключения в _аналитической_ теории чисел, и все три были _ошибочными_.

А если посчитать те уже известные к тому времени верные утверждения, до которых он дошел сам?

Я понять не могу, чучело, с чем именно споришь ты. Уперся рогом в херню какую-то, которую сформулировать толком не можешь, и метанируешь. Я что, утверждаю, что у него была куча результатов в теории чисел?

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

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

mclaudt
()
Ответ на: комментарий от alpha

>>Ему так хотелось найти геометрию там где её нет

Очень громкое утверждение.

Уж куда абстрактнее теории категорий, а требование ассоциативности стрелок визуализируется тетраэдрами, и имеет полезные применения при доказательстве некоторых теорем (инициальный и терминальный объект - вершина связки тетраэдров, не имеющих общих ребер)

mclaudt
()
Ответ на: комментарий от mclaudt

физики-твердотельщики до сих пор лепят модельки из хлебных мякишей

я рад за них

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

по твоему, общепринятая лаконичная нотация - это плохо?

Понимание предыстории и первопричины становления той или иной области математики очень полезно

во-первых, ты оперируешь только своим пониманием; во-вторых, доводишь его до абсурда

jtootf ★★★★★
()
Ответ на: комментарий от mclaudt

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

Но чтобы нащупать плодотворное направление _новой_ мысли - интуиция и аналогия должны работать отменно.

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

Это две стороны никак друг другу не противоречат

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

jtootf ★★★★★
()
Ответ на: комментарий от mclaudt

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

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

jtootf ★★★★★
()
Ответ на: комментарий от alpha

Так что если вы со shty немного смените тон, то выясните, что не противоречите друг другу, просто говорите о двух сторонах одного комплексного подхода.

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

цитирую дункана нашего, так сказать, маклауда:

Лучший образ, который я для себя выработал (цитирую c dxdy):

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

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

и вот с этим я категорически не согласен

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

во-вторых этот д'артаньян наш, маклауд, вместо того чтобы понять истинный смысл фразы, тут же объявил лямбды закорючками абстрактными, а математиков - закрытой гильдией, которая напускает туману на свои, в сущности, банальные рассуждения

PS самое смешное, когда я ему привёл цитату Н. Бурбаки, в которой говорится ровно то же самое, что и в его цитате, только без излишней иронии, он, внезапно, начал кипятиться как школьник :)

shty ★★★★★
()
Ответ на: комментарий от tailgunner

> Так что если вы со shty немного смените тон, то выясните, что не противоречите друг другу, просто говорите о двух сторонах одного комплексного подхода.

Справедливости ради:

mclaudt> Это две стороны никак друг другу не противоречат.

к сожалению, из речей и рассуждений «поциэнта» этого не следует

shty ★★★★★
()
Ответ на: комментарий от mclaudt

Я отрицаю только нужность shty и его некомпетентных, неаргументированных, полных свинской безграмотности выпадов на конструктивистов.

пались школота, большая и маленькая :)

shty ★★★★★
()
Ответ на: комментарий от mclaudt

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

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

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

shty ★★★★★
()
Ответ на: комментарий от shty

> к сожалению, из речей и рассуждений «поциэнта» этого не следует

У вас обоих речи мутны. А из его хамства и твоего чванства еще неизвестно, что хуже.

tailgunner ★★★★★
()
Ответ на: комментарий от mclaudt

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

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

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

iVS ★★★★★
()
Ответ на: комментарий от tailgunner

А из его хамства и твоего чванства еще неизвестно, что хуже

оба хороши, да

jtootf ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.