gpt4 book ai didi

perl - Perl中map或grep的使用

转载 作者:行者123 更新时间:2023-12-03 21:01:17 25 4
gpt4 key购买 nike

几个月来我一直在全职编写 perl 代码(生物信息学),并且一直在努力提高我的技能。就在今天,我突然意识到我从不使用 map 或 grep。回顾我的代码,我意识到这些工具可以在这里或那里为我节省几行代码,但只是以牺牲 foreach 循环的灵活性为代价。我的问题如下:

除了节省一两行代码之外,您是否遇到过使用 map 或 grep 比 foreach/for 循环带来显着优势的情况?

谢谢你的时间!

最佳答案

Schwartzian Transform将是一个例子:

@sorted = map  { $_->[0] }
sort { $a->[1] cmp $b->[1] }
map { [$_, foo($_)] }
@unsorted;

你可以用一堆 foreach 来做到这一点。循环,但你必须把它们分开才能弄清楚发生了什么;一旦你看过施瓦兹变换,你就会立即认出这个习语。

总的来说我认为 mapgrep好处在于它们允许您清晰紧凑地表达您的意图,而无需语法层。如果您看到 map然后你就知道正在进行某种简单的数据结构转换;如果您看到 grep那么您就知道正在进行一些过滤/选择。你可以用 foreach 来做这一切但是你的代码的意图并不像 map 那样清晰或 grep ;你甚至可以用 if 做这一切和 goto如果您愿意,那么您的意图将被更多的语法和状态跟踪所掩盖。

关于perl - Perl中map或grep的使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5574800/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com