加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

Perl中的函数组合

发布时间:2020-12-15 21:41:39 所属栏目:大数据 来源:网络整理
导读:在Perl 5中,我们可以应用函数式编程技术(使用闭包,高阶函数,如map,grep等).但功能构成怎么样?让我们说,在 Haskell中,使用(.)函数可以很容易地完成: map (negate . abs) [-3,2,4,-1,5] 在Perl中,这个“点函数”的等价物是什么? 解决方法 可悲的是,我不知道
在Perl 5中,我们可以应用函数式编程技术(使用闭包,高阶函数,如map,grep等).但功能构成怎么样?让我们说,在 Haskell中,使用(.)函数可以很容易地完成:
map (negate . abs) [-3,2,4,-1,5]

在Perl中,这个“点函数”的等价物是什么?

解决方法

可悲的是,我不知道Haskell.

但是函数组合本质上是将一个函数的输出作为参数放入下一个函数中.

output =(negate.abs)(input)与output = negate(abs(input))相同.在Perl中,parens通常是可选的,输入隐含在map函数中,所以我们可以说

output = map (negate abs) list

现在只需将其转换为Perl语法,我们就可以了

my @output = map {- abs} (1,3);

对于数学/代数否定,和

my @output = map {! abs} (1,3);

对于逻辑否定(当然,它与map {!$_}(1,3)相同).

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读