std :: iota的ioota代表什么?


144

我假设“ i”为增量,而“ a”为赋值,但我找不到答案。而且,它看起来与itoa我认为令人困惑的非标准非常相似。


10
可能来自APL?希腊字母Iota用于生成连续整数的向量。
cmbuckley 2012年

3
如果您认为这令人困惑,则Google Go会创建iota一个<s>关键字</ s>特别声明的标识符,该标识符的值在每个定义中都会增加一次,但仅在定义常量时才会增加。
Potatoswatter 2012年

3
同意itoa混淆 我有同样的想法。
NHDaly


1
有趣的是,我以某种方式认为该名称是取自“ atoi”的倒序–有点相反。虽然没有任何意义。
皮特

Answers:


184

原始的SGI STL文档中

名称iota来自编程语言APL。

APL的发明人Ken Iverson在他的图灵奖演讲中说:

例如,由表示的整数函数在应用于参数… 时ι会产生前n整数的向量n

ι小写的希腊字母iota

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


为了回应评论者的要求,我将在这种情况下进一步讨论“ iota”的词源。

可能的答案是Ken Iverson想要一个符号,该符号可以使用户记住单词“ integer”,并使用字母“ i”作为典型的整数变量,尤其是用于数组下标。

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

根据牛津英语词典,“ iota”是“希腊字母Ι,ι的名称,对应于罗马字母I,i; “我猜想是希腊字母中的最小字母”(我认为是物理上的最小字母,而不是字母上的最小字母),也表示“最小或非常小的粒子或数量”。OED最早对此含义的用法来自Daniel Featley在1636年撰写的Clavis mystica

我们会失去或偷偷摸摸地走过上帝的书的任何遗嘱或标题吗?

克拉维斯·米斯蒂卡Clavis mystica)是部分圣经的指南,尤其是马太福音5:18。1611年的《詹姆士王朝版》(King James Version)的这段文字是针对马太福音5:18的

马太福音5:18

转录:

因为我确实要对您说,蒂尔·豪恩(Till heauen)和大地通行证,无论是一种观点还是一个称号,在任何事情都得到实现之前,绝不会从法律上过世。

OED给出“ iote”作为“ jot”的另一种形式,(类似于“ iota”)源于希腊语单词“ἰῶτα”,希腊字母是所讨论字母的名称。Featley为什么将“ iote”更改为“ iota”?令人遗憾的是,我的个人图书馆中没有Mystica的副本,因此无法对此进行进一步调查。

在马太福音5:18的原始希腊语中,“ iote”是“ἰῶτα”,“ title”(或更现代的是“ tittle”)是“κεραία”。“κεραία”一词的含义大致为“ serif”或“撇号”。因此,此圣经经文指的是最小细节的概念,并使用“ἰῶτα”来指代字母iota,因为它是希腊字母中体力最小的字母。

因此,我们可以推断出STL函数iota及其APL前项是通过圣经以希腊字母“ι”中物理上最小的字母命名的,因为这些函数产生的整数之间相隔的最小数量分开。

根据Wikipedia的说法,希腊字母iota来自腓尼基字母yōdh。

就我目前希望解决的问题而言,这是编程领域。


6
那为什么要介绍错字呢?;-)
Subsub

5
但这只是将问题推后一点:为什么APL调用此函数
Daniel H

1
我以为APL之所以使用iota,是因为至少在英语中,它大致意味着最小的可测量量(例如,“我不在乎一个iota”。)。
阿德里安·麦卡锡

很酷的话语!让我在这里评论您对“ iota”和“ iote”与“ jot”的讨论。在古代语言中,字母I和J之间没有区别。J不在希腊字母中,也不在罗马中,因此基本上所有3种转录都指代同一字母。WP文章指出:“第一本明确区分⟨i⟩和⟨j⟩的英语书于1633年出版”,比您所引用的书晚22年。
彼得·K

29

希腊字母有时在数学中用于表示数字或单位矢量的集合。在C ++情况下,您将获得一个构造的向量集。与itoa无关。


23

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

要回答您的特定问题,它实际上并不代表任何东西。Iota (希腊语中发音为“ eye-oh-duh”或“ eye-oh-tuh”)是具有数学含义的希腊字母。

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


3
大多数非英语使用者,我不会将其发音为“ eye-oh-duh”
phuclv

游艇啊?我不在乎一丁点(我真的):)
威尔

5
@LưuVĩnhPhúc我可以确认至少一位以英语为母语的人也没有将其发音为“ eye-oh-duh”-我说的是“ eye-oh-tuh”(其中“ uh”是中间未区分的元音“ə”)数学”一词)
马丁·邦纳

4

哦,我一直觉得,因为std::iota(start,end,0)本质上代表

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

然后,您实质上将“分配i”到每个数组元素,而iota对i来说是希腊的,所以在那里。

(如果我是@robmayoff的答案中提到的APL选择的理由,我不会感到惊讶,尽管我不知道是否是这种情况。)


1

我从此页面引用:iotashaming,在这里您可以找到有关此主题的更多信息。

STL受Ken Iverson在APL上的工作影响很大。在1979年的肯·图灵奖演讲中,您会发现以下短语:

“例如,由η表示的整数函数产生前N个整数的向量。”

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.