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

在Perl中使用map或grep

发布时间:2020-12-15 21:14:20 所属栏目:大数据 来源:网络整理
导读:我已经写了perl代码全职几个月了(生物信息学),我一直在努力提高我的技能.就在今天,对我来说,我从不使用地图或grep.回顾我的代码,我意识到这些工具可以在这里或那里节省几条线,但只能牺牲foreach循环的灵活性.我的问题如下: 有没有任何情况下你使用map或grep
我已经写了perl代码全职几个月了(生物信息学),我一直在努力提高我的技能.就在今天,对我来说,我从不使用地图或grep.回顾我的代码,我意识到这些工具可以在这里或那里节省几条线,但只能牺牲foreach循环的灵活性.我的问题如下:

有没有任何情况下你使用map或grep在foreach / for循环中带来了显着的优势,除了保存一两行代码?

谢谢你的时间!

解决方法

Schwartzian Transform将是一个例子:
@sorted = map  { $_->[0] }
          sort { $a->[1] cmp $b->[1] }
          map  { [$_,foo($_)] }
          @unsorted;

你可以用一堆foreach循环来做,但你必须把它们分开来弄清楚发生了什么;一旦你看到了Schwartzian变换,你会立即认出成语.

一般来说,我认为地图和grep都很好,因为它们允许您清晰而紧凑地表达您的意图,而不需要语法层面.如果你看到一张地图,那么你知道某种简单的数据结构转换正在进行;如果你看到一个grep,那么你知道一些过滤/选择正在进行.你可以用foreach来完成所有的操作,但你的代码的意图不像map或grep那么清楚,你甚至可以用if和goto这样做,如果你想,但是你的意图将被埋在更多的语法和状态跟踪下.

(编辑:李大同)

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

    推荐文章
      热点阅读