【问题标题】:Functional Programming exercise (Lambda function)函数式编程练习(Lambda 函数)
【发布时间】:2020-01-03 23:53:51
【问题描述】:

大家新年快乐!

我的编程课程有以下练习:

编写一个名为 Imbauba 的类。类必须包含以下方法:

一个名为dit的公共方法,它有一个名为dawnward的参数(Function Float,Float类型)并返回Fuction Float,Float结果。返回的 Lambda 函数必须包含黎明除以 67 的值

   public class Imbauba {
        public Function<Float, Float> dit(Function<Float, Float> dawnward) {
             Function<Float, Float> sss = (a) -> dawnward / 67F;
             return sss;
        }
   }

这是我到目前为止所做的。我不知道如何继续。谁能指导我接近解决方案? 提前致谢

【问题讨论】:

    标签: java function lambda functional-programming


    【解决方案1】:

    您需要调用Function 上的方法。没有时髦的语法来调用功能接口的“功能”。比如:

             Function<Float, Float> sss = (a) -> dawnward.apply(a) / 67F;
    

    @VLAZ 在 cmets 中提到了andThencompose 以相反的顺序做同样的事情。我认为它们不利于可读性,并且只有在避免创建另一个 lambda 表达式时才真正有用(即使那样我也不想打扰)。

    【讨论】:

    • 仅供参考 - Function 类还有一个名为 andThen 的方法,它将与另一个 Function 执行功能组合。与上述等价的将是Function&lt;Float, Float&gt; sss = dawnward.andThen(x -&gt; x / 67F);
    • 只是好奇为什么你认为return dawnward.andThen(x -&gt; x / 67F) 不利于可读性return (a) -&gt; dawnward.apply(a) / 67F 不是?
    • @Naman 介绍了另一种方法。我永远不记得这些方法的工作方式。对我来说太多额外的想法了。 OTOH,andThen 确实减小了 lambda 的大小并有助于将其分解出来。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-11-01
    • 2011-02-22
    • 2011-08-24
    • 1970-01-01
    • 2010-09-19
    • 2015-12-19
    • 1970-01-01
    相关资源
    最近更新 更多