2012-02-11 32 views
92

我假设“我”是增量和“a”是分配,但我无法弄清楚或找到答案。此外,它看起来非常类似于我认为令人困惑的非标准itoa标准:: iota的iota代表什么?

+8

可能从APL?希腊字母Iota被用来生成连续整数的向量。 – cmbuckley 2012-02-11 23:24:15

+3

如果您认为这样做很混乱,Google Go会制作一个专门声明的标识符关键字,它的值在每个定义时增加一次,但只有在定义常量时才会增加。 – Potatoswatter 2012-02-12 14:06:53

+3

同意“itoa”的混淆;我有同样的想法。 – NHDaly 2013-11-27 08:48:25

回答

118

the original SGI STL documentation

名字丝毫从编程语言APL拍摄。

In his Turing Award lecture, Ken Iverson (inventor of APL) said this:

例如,当应用于参数n,所述整数功能由ι表示产生第一n整数向量...

ιthe lower-case Greek letter iota

在报价上面,我输入ιU+03B9, “GREEK SMALL LETTER IOTA”,但统一实际上有APL的丝毫专用代码点:U+2373, “APL FUNCTIONAL SYMBOL IOTA”


针对评论者的要求,我会进一步解释“iota”的词源就是这样的背景。

最有可能的答案是,肯艾弗森想要一个符号,它会提醒用户单词“整数”,并使用字母“i”作为典型的整数变量,特别是对于数组下标。

但让我们假设有一个更深的含义。根据牛津英语词典,“iota”是“希腊字母I,ι的名称,对应于罗马I,I;希腊字母表中的最小字母“(物理上最小,不是按字母顺序排列,我假设),也意味着”最小或非常小的粒子或数量“。该OED最早的这个意思已知的用法是从Clavis酒店MYSTICA由丹尼尔·费特利1636年:

我们将失去,或sleightly路过,神Booke的任何丝毫还是丝毫不差?

Clavis酒店MYSTICA为导向,以圣经的部分,这句话并特别提到了马修5时18分。 The 1611 edition of the King James Version has this text for Matthew 5:18

matthew 5:18

转录:

我实在vnto你,直到heauen和地过时了,一个IOTE或一个标题,应当从法律上没有聪明过时了,这些事都要实现。

的OED给“IOTE”作为“小额”的另一种形式,它(如“丝毫”),从希腊语“ἰῶτα”字,这是有问题的信希腊名字下降。为什么Featley将“iote”改为“iota”?可悲的是,我的私人图书馆没有Clavis mystica的副本,所以我无法进一步调查。

在马太福音5:18的原始希腊文中,“iote”是“ἰῶτα”,“title”(或更现代的“tittle”)是“κεραία”。 “κεραία”一词的意思大致是“衬线”或“撇号”。所以这本经文提到最小的细节的想法,并且使用“ἰῶτα”来指字母iota作为希腊字母表的物理上最小的字母。

因此,我们可以推断出STL功能iota,其APL先行,命名,由圣经的方式,希腊字母“ι”的物理最小的信后,因为这些功能产生由分开的整数整数可以分开的最小量。

According to Wikipedia,希腊字母iota来自腓尼基信yōdh。

这是迄今为止的编程领域,因为我目前希望去解决这个问题。

+31

Unicode很疯狂。 – 2013-09-13 03:35:57

+6

那么你为什么介绍错字呢? ;-) – subsub 2014-05-14 07:16:09

+3

但是这只是将问题推回了一点:为什么APL调用这个函数'?'? – 2017-06-21 15:16:39

27

它的希腊字母有时用于数学来表示数字或单位向量的集合。在C++的情况下,你会得到一个构造的向量集。与itoa无关。

+2

提及希腊信件+1。 – 2012-02-11 23:34:26

20

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

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

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

+1

大多数非英语使用者,我不会发音为“eye-oh-duh” – 2016-12-08 03:55:47

+0

eye-yacht-ah?我不在乎一个iota(我确实是这样):) – Will 2017-06-23 15:30:26

+0

@LưuVĩnhPhúc我可以证实至少有一位母语为英语的人不会发音为“eye-oh-duh” - 我说“eye-oh-tuh” (其中“uh”是“数学-matical”中间的未分化元音'ə') – 2017-10-31 10:06:30

3

哦,我一直的印象是,由于std::iota(start,end,0)基本上代表

for(size_t i = 0; i < std::distance(start, end) ; i++) { start[i] = i; } 

,那么你基本上是“分配I”到每个数组元素之下,丝毫是希腊的我,所以有。

(我不会感到惊讶,如果这是对APL的选择理由,在@ robmayoff的answer提到的,虽然我不知道是否是这种情况。)