相关疑难解决方法(0)

如何定义在Java 8中将lambda作为参数的方法?

在Java 8中,方法可以创建为Lambda表达式,并且可以通过引用传递(通过一些工作).有大量的在线示例,lambdas被创建并与方法一起使用,但没有关于如何使用lambda作为参数的方法的示例.那是什么语法?

MyClass.method((a, b) -> a+b);


class MyClass{
  //How do I define this method?
  static int method(Lambda l){
    return l(5, 10);
  }
}
Run Code Online (Sandbox Code Playgroud)

java lambda java-8

331
推荐指数
8
解决办法
19万
查看次数

如何在Clojure中将lambda实现为一个名为"lambda"的函数?

我希望能够在Clojure中使用常见的Lisp语法定义lambdas.例如:

(lambda (myarg)
  (some-functions-that-refer-to myarg))
Run Code Online (Sandbox Code Playgroud)

这需要与以下相同:

#(some-functions-that-refer-to %)
Run Code Online (Sandbox Code Playgroud)

在我的情况下,我知道我将永远只有一个arg,所以也许这简化了事情.(但它可以被称为任何东西 - "myarg"或其他什么.)

我怀疑一个可行的解决方案是"(defmacro lambda ......".如果是这样,我不确定最好的方法.如何干净地将arg名称翻译为%?以及如何最终得到正确的功能?

或者,是否有一个比编写我自己的宏更简单的解决方案,实际上重新实现了Clojure的...... lambda?

macros lambda clojure

16
推荐指数
1
解决办法
6584
查看次数

标签 统计

lambda ×2

clojure ×1

java ×1

java-8 ×1

macros ×1