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

224
преобразовать список объектов из одного типа в другой с помощью лямбда-выражения

У меня есть цикл foreach, читающий список объектов одного типа и создающий список объектов другого типа. Мне сказали, что лямбда-выражение может достичь того же результата. var origList = List<OrigType>(); // assume populated var targetList = List<TargetType>(); foreach(OrigType a in...

210
Передача лямбда-захвата в качестве указателя на функцию

Можно ли передать лямбда-функцию в качестве указателя на функцию? Если это так, я должен что-то делать неправильно, потому что я получаю ошибку компиляции. Рассмотрим следующий пример using DecisionFn = bool(*)(); class Decide { public: Decide(DecisionFn dec) : _dec{dec} {} private: DecisionFn...

210
Как объединить список списков с элементами одного типа в один список элементов?

Вопрос сбивает с толку, но он намного более понятен, как описано в следующих кодах: List<List<T>> listOfList; // add three lists of List<T> to listOfList, for example /* listOfList = new { { 1, 2, 3}, // list 1 of 1, 3, and 3 { 4, 5, 6}, // list 2 { 7, 8, 9} // list 3 }; */...

199
Java «лямбда-выражения не поддерживаются на этом уровне языка»

Я тестировал некоторые новые функции Java 8 и скопировал пример в мою IDE (изначально Eclipse, затем IntelliJ), как показано здесь Eclipse не предложила никакой поддержки лямбда-выражений, а IntelliJ продолжал сообщать об ошибке Лямбда-выражения не поддерживаются на этом уровне языка Я хотел бы...

197
Анонимные рекурсивные функции PHP

Возможно ли иметь функцию PHP, которая является как рекурсивной, так и анонимной? Это моя попытка заставить его работать, но имя функции не передается. $factorial = function( $n ) use ( $factorial ) { if( $n <= 1 ) return 1; return $factorial( $n - 1 ) * $n; }; print $factorial( 5 ); Я также...

190
В C # Что такое монада?

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

188
Java 8 лямбда Void аргумент

Допустим, у меня есть следующий функциональный интерфейс в Java 8: interface Action<T, U> { U execute(T t); } А в некоторых случаях мне нужно действие без аргументов или возвращаемого типа. Поэтому я пишу что-то вроде этого: Action<Void, Void> a = () -> { System.out.println("Do...

187
Создает ли лямбда-выражение объект в куче при каждом выполнении?

Когда я перебираю коллекцию, используя новый синтаксический сахар Java 8, такой как myStream.forEach(item -> { // do something useful }); Разве это не эквивалентно приведенному ниже фрагменту "старого синтаксиса"? myStream.forEach(new Consumer<Item>() { @Override public void accept(Item...

185
Есть ли в Java SE 8 пары или кортежи?

Я играю с ленивыми функциональными операциями в Java SE 8, и я хочу mapиндексировать iпару / кортеж (i, value[i]), затем filterна основе второго value[i]элемента и, наконец, выводить только индексы. Должен ли я все еще страдать так: Что эквивалентно паре C ++ <L, R> в Java? в смелую новую...

182
Функция Python Max с использованием «ключа» и лямбда-выражения

Я родом из ООП и пытаюсь изучить Python. Я использую maxфункцию, которая использует лямбда-выражение для возврата экземпляра типа, Playerимеющего максимум totalScoreсреди списка players. def winner(): w = max(players, key=lambda p: p.totalScore) Функция корректно возвращает экземпляр типа,...

181
Как использовать лямбду Java8 для сортировки потока в обратном порядке?

Я использую Java-лямбду для сортировки списка. как я могу отсортировать его в обратном порядке? Я видел этот пост , но я хочу использовать Java 8 лямбда. Вот мой код (я использовал * -1) как взломать Arrays.asList(files).stream() .filter(file -> isNameLikeBaseLine(file, baseLineFile.getName()))...

178
Локальная функция против Lambda C # 7.0

Я смотрю на новые реализации в C # 7.0, и мне интересно, что они реализовали локальные функции, но я не могу представить сценарий, где локальная функция предпочтительнее лямбда-выражения, и в чем разница между ними. Я понимаю, что лямбда- anonymousфункции являются функциями, в то время как...

173
Как преобразовать строку в эквивалентное дерево выражений LINQ?

Это упрощенная версия оригинальной задачи. У меня есть класс под названием Person: public class Person { public string Name { get; set; } public int Age { get; set; } public int Weight { get; set; } public DateTime FavouriteDay { get; set; } } ... и давайте скажем экземпляр: var bob = new Person {...

173
Невозможно использовать параметр ref или out в лямбда-выражениях

Почему вы не можете использовать параметр ref или out в лямбда-выражении? Сегодня я столкнулся с ошибкой и нашел обходной путь, но мне все еще было любопытно, почему это ошибка времени компиляции. CS1628 : невозможно использовать в ref или out параметр 'parameter' внутри анонимного метода,...

171
Почему лямбды могут быть лучше оптимизированы компилятором, чем обычные функции?

В своей книге The C++ Standard Library (Second Edition)Николай Йосуттис утверждает, что компилятор может оптимизировать лямбды лучше, чем простые функции. Кроме того, компиляторы C ++ оптимизируют лямбда-выражения лучше, чем обычные функции. (Стр. 213) Это почему? Я думал, что когда дело доходит до...