Tag: lambda

C ++中的Lambda-Over-Lambda 14

如何recursionlambda调用结束/终止? #include <cstdio> auto terminal = [](auto term) // <———+ { // | return [=] (auto func) // | ??? { // | return terminal(func(term)); // >———+ }; }; auto main() -> int { auto hello =[](auto s){ fprintf(s,"Hello\n"); return s; }; auto world =[](auto s){ fprintf(s,"World\n"); return s; }; terminal(stdout) (hello) (world) ; return […]

C#lambdaexpression式逆向<=

我见过一些使用<=运算符的代码。 你能解释什么是反向lambda的用法?

如何使用LINQ将List <string>中的所有string转换为小写?

我昨天在StackOverflow的一个响应中看到了一个代码片断,这让我很感兴趣。 这是这样的: List<string> myList = new List<string> {"aBc", "HELLO", "GoodBye"}; myList.ForEach(d=>d.ToLower()); 我希望我可以用它来将myList中的所有项目转换为小写。 然而,这不会发生…运行后,myList中的套pipe是不变的。 所以我的问题是,是否有一种方法,使用LINQ和Lambdaexpression式轻松地遍历和修改列表的内容以类似于此的方式。 谢谢,马克斯

内置的Java 8谓词总是返回true?

谷歌Guava有一个谓词总是返回true 。 Java 8是否有类似于Predicate东西? 我知道我可以使用(foo)->{return true;} ,但是我想要一些预制的东西,类似于Collections.emptySet() 。

C#将Lambdaexpression式作为方法parameter passing

我有一个lambdaexpression式,我希望能够传递和重用。 代码如下: 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; }, splitOn: "user_id", param: parameters).ToList<IJob>(); } 这里的关键是我想能够将我在这里使用的lambdaexpression式传递给调用此代码的方法,所以我可以重用它。 lambdaexpression式是我的.Query方法中的第二个参数。 我假设我想要使用一个操作或function,但我不太清楚这是什么语法或如何工作。 有人可以给我一个例子吗?

– > < – 操作符是做什么的?

我最近遇到以下代码: IntPredicate neg = x -> x <- x; 这是什么,某种反双拉姆达?

C ++ – 做什么?

我想知道[=]是什么? 这是一个简短的例子 template <typename T> std::function<T (T)> makeConverter(T factor, T offset) { return [=] (T input) -> T { return (offset + input) * factor; }; } auto milesToKm = makeConverter(1.60936, 0.0); 代码如何处理[]而不是[=] ? std::function<T (T)> 意思是获得(T)作为参数和返回typesT的函数原型?

使用包含在entity framework4中的lambdaexpression式

我见过很多关于如何克服这个问题的文章,都与CTP4相关,或者添加了我自己的扩展方法。 是否有一个“官方”EF4包括使用包括lambdaexpression式(包括第一级关系,也是第二级和更多级别)的方式,还是最终没有包含在RTM? 它有一个 – 我会很高兴学习如何做,因为在我的代码中使用lambdaexpression式(使用#system.data.entity#system.data.linq)仍然给我: 无法将lambdaexpression式转换为“string”types,因为它不是委托types: var customers = from c in context.Customers.Include(c=>c.Phone)

在Ruby块中使用“返回”

我正在尝试将Ruby 1.9.1用于embedded式脚本语言,以便将“最终用户”代码写入Ruby块中。 与此相关的一个问题是,我希望用户能够在块中使用“返回”关键字,所以他们不需要担心隐式返回值。 考虑到这一点,这是我希望能够做的事情: def thing(*args, &block) value = block.call puts "value=#{value}" end thing { return 6 * 7 } 如果我在上面的例子中使用'return',我得到一个LocalJumpError。 我知道这是因为有问题的块是Proc而不是lambda。 代码的作品,如果我删除“返回”,但我真的希望能够在这种情况下使用“返回”。 这可能吗? 我已经尝试将块转换为lambda,但结果是相同的。

lambda的返回types可以通过返回值推导出来,所以为什么不能使用函数呢?

#include <iostream> int main(){ auto lambda = [] { return 7; }; std::cout << lambda() << '\n'; } 这个程序编译和打印7。 lambda的返回types根据返回值7推导为整数types。 为什么普通函数不可能呢? #include <iostream> auto function(){ return 42; } int main(){ std::cout << function() << '\n'; } 错误:“函数”函数使用“自动”types说明符没有尾随返回types