¿Qué significa iota of std :: iota?

Supongo que la “i” es un incremento y la “a” es una asignación, pero no pude averiguar o encontrar la respuesta. Además, parece muy similar al itoa no estándar que creo que es confuso.

De la documentación original de SGI STL :

El nombre iota se toma del lenguaje de progtwigción APL.

En su conferencia del Premio Turing, Ken Iverson (inventor de APL) dijo esto:

Por ejemplo, la función de entero denotada por ι produce un vector de los primeros n enteros cuando se aplica al argumento n , …

Esa es la letra griega iota minúscula .

En la cita anterior, escribí ι , U + 03B9, “GREEK SMALL LETTER IOTA” , pero Unicode en realidad tiene un punto de código dedicado para iota de APL: es U + 2373, “APL FUNCTIONAL SYMBOL IOTA” .


En respuesta a las demandas de los comentaristas, abordaré la etimología de “iota” en este contexto.

La respuesta más probable es que Ken Iverson quería un símbolo que recordara al usuario la palabra “entero” y el uso de la letra “i” como una variable entera típica, especialmente para los subíndices de matriz.

Pero supongamos que hay un significado más profundo.

Según el Oxford English Dictionary, “iota” es “El nombre de la letra griega Ι, ι, que corresponde a la I, i romana; la letra más pequeña del alfabeto griego “(más pequeña físicamente, no alfabéticamente, supongo), y también significa” La menor, o muy pequeña, partícula o cantidad “. El primer uso conocido de este significado por parte de la OED es de Clavis mystica por Daniel Featley en 1636:

¿Perderemos, o pasaremos por alto, alguna jota o título del Libro de Dios?

Clavis mystica es una guía de partes de la Biblia, y esta oración se refiere en particular a Mateo 5:18. La edición 1611 de la versión King James tiene este texto para Mateo 5:18 :

Mateo 5:18

Transcripción:

Porque de cierto os digo, Till heauen y earth passe, un ote o un título, no pasarán de la ley hasta que se cumpla todo.

La OED da “iote” como otra forma de “jota”, que (como “iota”) desciende de la palabra griega “ἰῶτα”, que es el nombre griego de la letra en cuestión. ¿Por qué Featley cambió “iote” a “iota”? Lamentablemente, no tengo una copia de Clavis mystica en mi biblioteca personal, así que no puedo investigar más.

En el griego original de Mateo 5:18, “iote” es “ἰῶτα”, y “título” (o más moderno, “tittle”) es “κεραία”. La palabra “κεραία” significa, aproximadamente, “serif” o “apóstrofe”. Entonces, este versículo bíblico se refiere a la idea de los detalles más pequeños , y usa “ἰῶτα” para referirse a la letra iota en su papel como la letra físicamente más pequeña del alfabeto griego.

Por lo tanto, podemos deducir que la función STL iota , y su antecedente APL, se nombran, por medio de la Biblia, después de la letra físicamente más pequeña del alfabeto griego “ι”, porque estas funciones producen números enteros separados por la cantidad más pequeña por la cual Los enteros pueden estar separados.

Según Wikipedia , la letra griega iota vino de la letra fenicia yōdh.

Esto está tan lejos de la progtwigción como actualmente deseo ir para esta pregunta.

Es la letra griega que a veces se usa en matemáticas para denotar conjuntos de números o vectores unitarios. En el caso de C ++, obtienes un conjunto de vectores construido. Nada que ver con itoa.

std::iota llenará un rango de iteradores con valores incrementados sucesivamente.

Para responder a tu pregunta específica, en realidad no significa nada. Iota (pronunciado “eye-oh-duh” en inglés) es una letra griega con connotaciones matemáticas.

Es estándar en C ++ 11, pero no en estándares anteriores.

Oh, siempre tuve la impresión de que std::iota(start,end,0) significa esencialmente

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

entonces esencialmente "asigna i" a cada elemento de la matriz, y iota es griego para i, así que ahí está.

(No me sorprendería si ese fuera el fundamento de la elección de APL, mencionada en la respuesta de @ robmayoff, aunque no tengo idea si ese es el caso).