Вопросы с тегом «lambda»

Лямбды - это анонимные функции (т. Е. Не имеющие идентификатора, как методы в классе), которые могут использоваться в широком спектре языков программирования.

112
Что вызвало популярность лямбда-функций в современных основных языках программирования?

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

56
Что такое лямбда и почему она полезна? [закрыто]

До сих пор я слышал о: Лямбда-исчисление Лямбда-программирование Лямбда-выражения Лямбда-функции Что, похоже, связано с функциональным программированием ... По всей видимости, он будет интегрирован в C ++ 1x, поэтому я мог бы лучше понять это сейчас:...

56
Есть ли выигрыш в производительности при использовании ссылочного синтаксиса метода вместо лямбда-синтаксиса в Java 8?

Пропускают ли ссылки на методы накладные расходы на лямбда-оболочку? Могут ли они в будущем? Согласно Учебному руководству по Java о методах : Иногда ... лямбда-выражение делает только вызов существующего метода. В этих случаях часто проще обратиться к существующему методу по имени. Ссылки на...

54
В чем разница между функцией и лямбда?

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

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

Недавно я освоил лямбда-выражение, которое было введено в java 8. Я обнаружил, что всякий раз, когда я использую функциональный интерфейс, я склонен всегда использовать лямбда-выражение вместо создания класса, реализующего функциональный интерфейс. Это считается хорошей практикой? Или их ситуации,...

50
Почему Python не допускает многострочные лямбды?

Может кто-нибудь объяснить конкретные причины, по которым BDFL решили сделать лямбды Python однострочными? Это хорошо: lambda x: x**x Это приводит к ошибке: lambda x: x**x Я понимаю, что создание многострочного лямбда-выражения каким-то образом «нарушит» нормальные правила отступов и потребует...

43
Каково происхождение и значение фразы «лямбда-предельная»?

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

43
Приводит ли использование выражений LINQ и Lambda к менее читаемому коду? [закрыто]

У меня беседа с коллегой по Linq, я напишу здесь: Сотрудник: Давайте будем честными здесь. Синтаксис Linq отстой. Это сбивает с толку и не интуитивно понятно. Я: да ладно, более запутанно, чем T-SQL? Сотрудник: да. Я: он имеет те же основные части, выберите, где и из Сотрудник: Linq, для меня,...

40
Является ли лямбда-выражение чем-то большим, чем анонимный внутренний класс с одним методом?

В Java 8 появилась новая реклама с долгожданными лямбда-выражениями; каждые 3 дня появляется новая статья о том, как они круты. Насколько я понял, лямбда-выражение - это не что иное, как анонимный внутренний класс с одним методом (по крайней мере, на уровне байт-кода). Помимо этого он имеет еще...

39
Почему я должен использовать «функциональные операции» вместо цикла for?

for (Canvas canvas : list) { } NetBeans предлагает мне использовать «функциональные операции»: list.stream().forEach((canvas) -> { }); Но почему это предпочтительнее ? Во всяком случае, труднее читать и понимать. Вы звоните stream(), затем forEach()используете лямбда-выражение с параметром...

30
Каковы преимущества и недостатки подходов C #, Java и Scala к Closures / Lambdas /…?

Этот вопрос был перенесен из переполнения стека, потому что на него можно ответить в Software Engineering Stack Exchange. Мигрировал 8 лет назад . Интересно, каковы технические различия между C # и Scala в реализации и как оба решения сравниваются с идеями и проблемами реализации, озвученными в...

30
Вывод типа в Java 8

Собирается ли введение новой лямбда-нотации (см., Например, эту статью ) в Java 8 какого-либо вывода типа? Если да, то как новая система типов повлияет на язык Java в...

26
Допустимо ли использовать лямбда-функции \ методы в деловом программном обеспечении?

Я заметил здесь посты, демонстрирующие использование функций делегатов \ лямбда для устранения дыры в средней идее без большого количества повторений: http://www.markhneedham.com/blog/2009/04/04/functional-c -The отверстия-в-среднего рисунка / Кажется, проблема в том, что младшие разработчики и...

22
Почему на Хаскеле нет лямбда-абстракций на уровне типов?

Существуют ли для этого какие-либо теоретические причины (например, проверка типов или вывод типов стали бы неразрешимыми) или практические причины (слишком трудно осуществить должным образом)? В настоящее время мы можем обернуть вещи newtypeкак newtype Pair a = Pair (a, a) а затем есть Pair :: *...

14
Это хороший шаблон: заменить длинную функцию серией лямбд?

Я недавно столкнулся со следующей ситуацией. class A{ public: void calculate(T inputs); } Во-первых, Aпредставляет объект в физическом мире, что является веским аргументом для того, чтобы не разделять класс. Теперь calculate()оказывается довольно долгая и сложная функция. Я воспринимаю три...

13
Поддержка C ++ 11 для функций списка высшего порядка

Большинство функциональных языков программирования (например , Common Lisp, Scheme / ракетки, Clojure, Haskell, Scala, Ocaml, SML) поддерживают некоторые общие функции высшего порядка в списках, такие как map, filter, takeWhile, dropWhile, foldl, foldr(см , например , Common Lisp, Scheme / Ракетка,...

12
Java 8: Хорошая практика для передачи потоков в API для ленивых операций?

В лямбда-тяжелых библиотеках до Java 8, таких как Guava, в выходных данных используются общие интерфейсы Java Collection Framework, поэтому их легко передавать во внешние / внутренние API-интерфейсы и при этом использовать некоторые ленивые вычисления, если это делает метод библиотеки (например,...

11
Что является основным направлением деятельности Java? Почему для получения новых функций требуется так много времени?

Я изучал новые функции в JDK8, такие как лямбда-выражения, методы расширения и новый потоковый API. Очевидно, что ни одна из этих функций не нова в мире программирования, и это заставляет задуматься, почему до сих пор все это получается в Java. У нас были лямбда-выражения в Lisp (1958), SML (1973),...

11
В Java 8 лучше стилистически использовать выражения ссылок на методы или методы, возвращающие реализацию функционального интерфейса?

В Java 8 добавлена ​​концепция функциональных интерфейсов , а также множество новых методов, предназначенных для использования функциональных интерфейсов. Экземпляры этих интерфейсов могут быть кратко созданы с использованием выражений ссылки на метод (например SomeClass::someMethod) и...