什么是std :: iota代表什么?

Jes*_*ood 127 c++ naming-conventions c++11

我假设"i"是增量而"a"是指定的,但我无法弄清楚或找到答案.此外,它看起来非常类似于itoa我认为令人困惑的非标准.

rob*_*off 172

最初的SGI STL文档:

名称iota取自编程语言APL.

在他的图灵奖演讲中,Ken Iverson(APL的发明者)说:

例如,表示的整数函数在应用于参数时?会生成第一个n整数的向量n,...

?小写的希腊字母iota.

在上面的报价,我输入?,U + 03B9,"希腊小写字母IOTA",但实际上的Unicode对APL的丝毫专用代码点:?U + 2373,"APL功能符号IOTA".


为了回应评论者的要求,我将在这方面进一步阐述"iota"的词源.

最有可能的答案是Ken Iverson想要一个符号,它会提醒用户"整数"这个词,并使用字母"i"作为典型的整数变量,特别是对于数组下标.

但我们假设有更深层的含义.

根据牛津英语词典,"iota"是"希腊字母Ι,ι的名称,对应于罗马I,i; 希腊字母表中最小的字母"(物理上最小,不是按字母顺序排列,我推测),也指"最小或非常小的粒子或数量".OED最早使用的意思是来自Daniel Featley于1636年创作的Clavis mystica:

难道我们会失去或轻易地通过上帝的Booke的任何琐事?

Clavis mystica是圣经部分的指南,这句话特别指的是马太福音5:18.1611版的詹姆士王版本载有马太福音5:18的经文:

马太福音5:18

转录:

我实实在在地告诉你,直到heauen和地球过去,一个人或一个头衔,都不得违背法律,直到所有人都满足为止.

OED将"iote"作为另一种形式的"jot",其中(如"iota")来自希腊语"ἰῶτα",这是该字母的希腊名字.为什么Featley将"iote"改为"iota"?可悲的是,我的个人图书馆里没有Clavis mystica的副本,所以我无法进一步调查.

在马太福音5:18的原始希腊文中,"iote"是"ἰῶτα",而"title"(或更现代,"tittle")是"κεραία"."κεραία"一词大致是指"serif"或"撇号".因此,这节经文指的是最小细节的概念,并使用"ἰῶτα"来表示字母iota作为希腊字母表中物理上最小的字母.

因此,我们可以推断出STL函数iota及其APL前因?是通过圣经在希腊字母"ι"的物理上最小的字母之后命名的,因为这些函数产生的整数由整数的最小量分隔.分开.

根据维基百科,希腊字母iota来自腓尼基字母yōdh.

这是我目前希望针对这个问题进行编程的.

  • 那你为什么要介绍这个错字呢?;-) (6认同)
  • 但这只是稍微提出了一个问题:为什么APL称这个函数为`⍳`? (4认同)

pat*_*yts 29

它的希腊字母有时用于数学表示数字或单位向量.在C++案例中,您将获得构造的向量集.与itoa无关.


Dre*_*ann 22

std::iota 将使用连续递增的值填充迭代器范围.

要回答你的具体问题,它实际上并不代表什么.Iota (英语中发音为"eye-oh-duh")是一个带有数学内涵的希腊字母.

它是C++ 11中的标准,但不是早期标准.

  • @LưuVĩnhPhúc我可以证实,至少有一位英语母语人士也没有发出"眼睛哦"的说法 - 我说的是"eye-oh-tuh"(其中"呃"是中间的未分化的元音'ə' "math-ə-matical") (5认同)
  • 大多数非英语人士,我不发音为"eye-oh-duh" (3认同)