【发布时间】:2011-03-02 11:40:25
【问题描述】:
在回答this question 时,我意识到我不确定Perl 的map 是否可以被视为循环?
一方面,它像循环一样嘎嘎/走动(O(n) 是否有效,可以很容易地用等效循环重写,并且有点符合通用定义 = “不断重复的指令序列")。
另一方面,map 通常不在 Perl 的控制结构中列出,其中循环是其中的一个子集。例如。 http://en.wikipedia.org/wiki/Perl_control_structures#Loops
所以,我正在寻找一个正式的理由来说服一方与另一方。到目前为止,前者(它是一个循环)对我来说听起来更有说服力,但我对我从未在 Perl 循环列表中看到过“map”这一事实感到困扰。
【问题讨论】:
-
顺便说一句,这肯定是因为我查看了错误的循环列表,作为答案,我很乐意接受某种实际上包含“地图”的官方循环列表
-
"Loop" 没有精确的通用定义,所以这是严格意义上的语义:答案是
map是一个循环当且仅当你认为某人是权威的(例如 Larry Wall 或共识Perl 社区的) 说是的。 -
@j_random - 这就是我的想法......有人提供了一些“官方”措辞(例如来自 O'Reilly 的书或 perlfaq 或 perldoc),或者来自深入参与的人的回应使用 Perl 内部结构(IIRC Larry Wall 不在 / 上。但 Randal Schwartz 和几个 perl 搬运工在)
-
我明白你的意思了——了解对单词含义的共识观点很有用,这样你就可以在不引起混淆的情况下进行交流。不幸的是,在这种特殊情况下似乎没有强烈的共识。
-
@Snake - 请参阅 Eric 的回答。特别是在 perl5 中,这是有保证的。在一般的编程语言中,不是