lambda- все статьи тега ➜ страница 2


Могут ли лямбда-функции быть шаблонными?

В C++11, есть ли способ шаблона лямбда-функции? Или это по своей сути слишком специфично, чтобы быть шаблонизированным? Я понимаю, что вместо этого я могу определить классический шаблонный класс/функтор, но вопрос больше похож: позволяет ли язык шаблонизировать лямбда-функции? ...

Рекурсивные анонимные функции PHP

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

Использование делегата действия в C#

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

Что означает лямбда с 2 стрелками в Java 8?

Я читал несколько Java 8 учебники раньше. прямо сейчас я столкнулся со следующей темой: поддерживает ли java карринг? здесь, я вижу следующий код: IntFunction<IntUnaryOperator> curriedAdd = a -> b -> a + b; System.out.println(curriedAdd.apply(1).applyAsInt(12)); Я понимаю, что этот пример суммирует 2 элемента, но я не могу понять конструкцию: a -> b -> a + b; согласно левой части выражения, эта строка должна реализовывать следующую функцию: R apply(int value); до эт ...

Синтаксис за сортировкой(ключ=лямбда: …)

Я не совсем понимаю синтаксис за : key=lambda variable: variable[0] не lambda произвольные? Почему это variable указано дважды в том, что выглядит как dict? ...

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

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

Что использование функционального интерфейса в Java 8?

я наткнулся на новый термин под названием Функционального Интерфейса в Java 8. я смог найти только одно использование этого интерфейса во время работы с лямбда-выражения. в Java 8 предоставляет некоторые встроенные функциональные интерфейсы и если мы хотим определить любой функциональный интерфейс, то мы можем использовать @FunctionalInterface Примечание. Это позволит нам объявить только один метод в интерфейсе. для пример: @FunctionalInterface interface MathOperation { int operation(i ...

Рекурсивные лямбда-функции в C++11

Я новичок в C++11. Я пишу следующую рекурсивную лямбда-функцию, но она не компилируется. сумма.cpp #include <iostream> #include <functional> auto term = [](int a)->int { return a*a; }; auto next = [](int a)->int { return ++a; }; auto sum = [term,next,&sum](int a, int b)mutable ->int { if(a>b) return 0; else return term(a) + sum(next(a),b); }; int main(){ std::cout<<sum(1,10)<<std::endl; return 0; } ошибка компиляции: Вимал@Лину ...

Встроенные Java 8 предикат, который всегда возвращает true?

у Google Guava есть предикат, который всегда возвращает true. Есть ли у Java 8 что-то подобное для его Predicate? Я знаю, что мог бы использовать (foo)->{return true;}, но я хочу что-то готовое, аналогичное Collections.emptySet(). ...

Как я могу получить каждый N-й элемент из списка?

Я использую .NET 3.5 и хотел бы иметь возможность получить каждый *n * й пункт из списка. Я не беспокоюсь о том, достигается ли это с помощью лямбда-выражения или LINQ. Edit похоже, этот вопрос вызвал довольно много споров (что хорошо, не так ли?). Главное, что я узнал, это то, что когда вы думаете, что знаете все способы сделать что-то (даже так просто, как это), подумайте еще раз! ...

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

следующий код компилируется с gcc 4.5.1, но не с VS2010 SP1: #include <iostream> #include <vector> #include <map> #include <utility> #include <set> #include <algorithm> using namespace std; class puzzle { vector<vector<int>> grid; map<int,set<int>> groups; public: int member_function(); }; int puzzle::member_function() { int i; for_each(groups.cbegin(),groups.cend(),[grid,&i](pair<int,se ...

Что такое "тип SAM" в Java?

читая спецификацию Java-8, я продолжаю видеть ссылки на "типы SAM". Я не смог найти четкого объяснения, что это. Что такое тип SAM и каков пример сценария, когда он может быть использован? ...

Не удается преобразовать лямбда-выражение В тип 'string', потому что это не тип делегата [дубликат]

этот вопрос уже есть ответ здесь: Entity Framework-не удается преобразовать лямбда-выражение В тип 'string', поскольку это не тип делегата 14 ответов Я использую лямбда-выражение LINQ вот так: int Value = 1; qryContent objContentLine; using (Entities db = new Entities()) { objContentLine = (from q in db.qryContents where q.LineID == Value orderby q.RowID ...

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

Предположим, у меня есть универсальный интерфейс: interface MyComparable<T extends Comparable<T>> { public int compare(T obj1, T obj2); } и метод sort: public static <T extends Comparable<T>> void sort(List<T> list, MyComparable<T> comp) { // sort the list } я могу вызвать этот метод и передаем лямбда-выражение в качестве аргумента: List<String> list = Arrays.asList("a", "b", "c"); sort(list, (a, b) -> a.compareTo(b)); это бу ...

C# передать лямбда-выражение в качестве параметра метода

У меня есть лямбда-выражение, которое я хотел бы иметь возможность передавать и повторно использовать. Вот код: public List<IJob> getJobs(/* i want to pass the lambda expr in here */) { using (SqlConnection connection = new SqlConnection(getConnectionString())) { connection.Open(); return connection.Query<FullTimeJob, Student, FullTimeJob>(sql, (job, student) => { job.Student = student; job.StudentId = student.Id; return job; ...

Зачем нам нужны волокна

для волокон мы получили классический пример: генерация чисел Фибоначчи fib = Fiber.new do x, y = 0, 1 loop do Fiber.yield y x,y = y,x+y end end зачем нам нужны волокна здесь? Я могу переписать это с тем же Proc (закрытие, на самом деле) def clsr x, y = 0, 1 Proc.new do x, y = y, x + y x end end так 10.times { puts fib.resume } и prc = clsr 10.times { puts prc.call } вернет точно такой же результат. Итак, каковы преимущества волокон. Что я могу ...

Java8 лямбда против анонимных классов

Я немного изучил это и нашел несколько интересных примеров того, как лямбда-выражения будут систематически заменять эти классы, например метод сортировки коллекции, который использовался для получения анонимного экземпляра Comparator для выполнения сортировки: Collections.sort(personList, new Comparator<Person>(){ public int compare(Person p1, Person p2){ return p1.firstName.compareTo(p2.firstName); } }); теперь можно сделать с помощью Lambdas: Collections.sort(personList, (Pe ...

Использование Include в Entity Framework 4 с лямбда-выражениями

Я видел много статей о том, как преодолеть этот вопрос, все связанные с CTP4, или добавление моих собственных методов расширения. есть ли "официальный" способ EF4 использовать лямбда-выражения внутри include (как для отношений первого уровня, так и для 2-го и более уровня) или он в конечном итоге не был включен в RTM ? это есть один - я был бы рад узнать, как это сделать, как использовать лямбда-выражение в моем коде сейчас (с #system.данные.сущность #система.данные.в LINQ) еще дает мне: не ...

Указатели функций, замыкания и лямбда

Я только сейчас узнаю о указателях функций, и, когда я читал главу K&R по этому вопросу, первое, что меня поразило, было: "Эй, это похоже на закрытие."Я знал, что это предположение в корне неверно, и после поиска в Интернете я не нашел действительно никакого анализа этого сравнения. Итак, почему указатели функций C-стиля принципиально отличаются от замыканий или лямбд? Насколько я могу судить, это связано с тем, что указатель на функцию по-прежнему указывает на определенную (именованную) ф ...

Как отлаживать поток ().карта(...) с лямбда-выражениями?

в нашем проекте мы переходим на java 8 и тестируем его новые возможности. в моем проекте я использую предикаты и функции Guava для фильтрации и преобразования некоторых коллекций с помощью Collections2.transform и Collections2.filter. в этой миграции мне нужно изменить, например, код guava на изменения java 8. Итак, изменения, которые я делаю, являются такими: List<Integer> naturals = Lists.newArrayList(1,2,3,4,5,6,7,8,9,10,11,12,13); Function <Integer, Integer> duplicate = new ...