C++ iota不是首字母缩写词,也不是首字母缩写,它是单词"iota",这是the ninth letter of the Greek alphabet名称的英文拼写:字母的小写形式通常像英文字母i,但没有点。根据字体的不同,衬线可能会略有不同。 The original SGI STL documentation给出了以下解释: 名称iota取自编程语言APL。 Ken Iverson创建了APL(它代表"编程语言"),在他1962年出版的著作A Programming Language的1.7节"特殊向量"中,他在第15页引入了(ι)作为"区间向量": 区间向量******j ( n *)定义为以 * j * 开头的整数的向量。 在他的1979 Turing Award讲座,“Notation as a Tool of Thought”,他给出了APL的函数的描述: 例如,由⍳表示的 * integer * 函数在应用于参数n,...时生成前n个整数的向量。 因此,最有可能的答案是,艾弗森博士想要一个符号,它会提醒用户单词"integer",单词"interval",以及字母"i"作为典型整数变量的使用,特别是对于数组下标。 "选择" ι "符号很可能是因为它在数学中被用来表示一个"。"他解释了他的推理。 不幸的是,艾弗森博士于2004年去世,比这个问题在Stack Overflow上提出的时间早了好几年,所以我们不能要求他给出更精确的解释。 顺便说一下,Unicode有两个小写字母iota的代码点:一个用于写希腊语,另一个用于写APL。写希腊语的是ι,U+03B9, “GREEK SMALL LETTER IOTA”。写APL的是⍳,U+2373, “APL FUNCTIONAL SYMBOL IOTA”。 为了回应评论者的要求,我将在本文中进一步讨论"iota"的词源。 让我们假设有更深层的含义。 根据《牛津英语词典》,"iota"是"希腊字母I,ι的名字,对应于罗马字母I,i;希腊字母表中最小的字母"(我想是物理上最小的,而不是按字母顺序),也意味着"最小的,或者非常小的粒子或数量"。OED中已知的这个意思最早的用法来自Daniel Featley在1636年的Clavis mystica: 我们会失去,或巧妙地通过,任何一点或一点点的神的书?
6条答案
按热度按时间8yoxcaq71#
C++
iota
不是首字母缩写词,也不是首字母缩写,它是单词"iota",这是the ninth letter of the Greek alphabet名称的英文拼写:字母的小写形式通常像英文字母i,但没有点。根据字体的不同,衬线可能会略有不同。The original SGI STL documentation给出了以下解释:
名称
iota
取自编程语言APL。Ken Iverson创建了APL(它代表"编程语言"),在他1962年出版的著作A Programming Language的1.7节"特殊向量"中,他在第15页引入了(ι)作为"区间向量":
区间向量******j ( n *)定义为以 * j * 开头的整数的向量。
在他的1979 Turing Award讲座,“Notation as a Tool of Thought”,他给出了APL的函数的描述:
例如,由
⍳
表示的 * integer * 函数在应用于参数n
,...时生成前n
个整数的向量。因此,最有可能的答案是,艾弗森博士想要一个符号,它会提醒用户单词"integer",单词"interval",以及字母"i"作为典型整数变量的使用,特别是对于数组下标。
"选择" ι "符号很可能是因为它在数学中被用来表示一个"。"他解释了他的推理。
不幸的是,艾弗森博士于2004年去世,比这个问题在Stack Overflow上提出的时间早了好几年,所以我们不能要求他给出更精确的解释。
顺便说一下,Unicode有两个小写字母iota的代码点:一个用于写希腊语,另一个用于写APL。写希腊语的是
ι
,U+03B9, “GREEK SMALL LETTER IOTA”。写APL的是⍳
,U+2373, “APL FUNCTIONAL SYMBOL IOTA”。为了回应评论者的要求,我将在本文中进一步讨论"iota"的词源。
让我们假设有更深层的含义。
根据《牛津英语词典》,"iota"是"希腊字母I,ι的名字,对应于罗马字母I,i;希腊字母表中最小的字母"(我想是物理上最小的,而不是按字母顺序),也意味着"最小的,或者非常小的粒子或数量"。OED中已知的这个意思最早的用法来自Daniel Featley在1636年的Clavis mystica:
我们会失去,或巧妙地通过,任何一点或一点点的神的书?
转录:
我实在告诉你们,直到天地都过去,一分银子,一个爵位,决不能脱离律法,直到一切都成就了。
在马太福音5:18的希腊原文中,"iote"是"τ α",而"title"(或更现代的"title")是"κ ε ρ α ί α"。"κ ε ρ α ί α"一词的意思大致是"衬线"或"撇号"。因此,这节圣经经文指的是"最小的细节"的概念,并使用"τ α"来指字母iota,因为它是希腊字母表中最小的字母。
作为一名圣经学者(他获得了神学博士学位),费特利无疑可以读懂希腊语。我猜他只是把字母的希腊语名称"ι τ α"音译成了英语"iota"。他为什么不按照詹姆斯国王译本的拼写"iote"呢?我不知道。
因此,我们可以推断STL函数
iota
及其APL前件⍳
是以希腊字母表中物理上最小的字母"ι"命名的,因为这些函数产生的整数被整数可以被分隔的最小量分隔。According to Wikipedia,希腊字母iota来自腓尼基字母yōdh。
对于这个问题,这是我目前所希望的编程领域。
xriantvc2#
这是一个希腊字母,有时候在数学中被用来表示数字或单位向量的集合,在C++中,你得到的是一个构造的向量集合,与itoa无关。
pu82cl6c3#
std::iota
将用连续递增的值填充迭代器范围。为了回答你的问题,Iota *(英语发音为“eye-oh-duh”或“eye-oh-tuh”)是一个希腊字母,具有数学含义。
它是C++11的标准,但不是早期的标准。
qncylg1j4#
噢,我一直以为
std::iota(start,end,0)
代表然后你给每个数组元素“赋值i,”iota是希腊语的i,就这样。
(如果这就是@robmayoff的answer中提到的选择APL的理由,我不会感到惊讶,尽管我不知道是否如此。)
rjzwgtxy5#
我引用这一页:iotashaming,您可以在其中找到有关该主题的更多信息。
STL深受肯·艾弗森在APL方面的工作的影响。在肯1979年的图灵奖演讲中,你会发现这句话:
“例如,用ι表示的整数函数产生前N个整数的向量.”
olmpazwi6#
std::iota
-它是一个标准的函数模板,位于<numeric>
头文件中(不在<algorithm>
中),可从C++11获得。它对于生成范围[first,last]中递增值(++val)的连续序列非常有用。