Apa singkatan dari iota of std :: iota?

146

Saya berasumsi bahwa "i" adalah kenaikan dan "a" ditetapkan, tetapi saya tidak dapat menemukan atau menemukan jawabannya. Selain itu, terlihat sangat mirip dengan non-standar itoayang menurut saya membingungkan.

Jesse Bagus
sumber
10
Mungkin dari APL? Huruf Yunani Iota digunakan untuk menghasilkan vektor bilangan bulat berturut-turut.
cmbuckley
3
Jika Anda berpikir itu membingungkan, Google Go membuat iota<s> kata kunci </s> pengidentifikasi yang dideklarasikan secara khusus, yang nilainya bertambah satu kali per definisi, tetapi hanya ketika Anda mendefinisikan konstanta.
Potatoswatter
3
Setuju tentang itoakebingungan; Saya memiliki pemikiran yang sama.
NHDaly
1
Lucu, entah bagaimana saya mengira nama itu dari mengambil "atoi" mundur - semacam terbalik. Tapi itu tidak masuk akal.
Petter

Jawaban:

184

Dari dokumentasi SGI STL asli :

Nama iota diambil dari bahasa pemrograman APL.

Dalam ceramah Turing Award-nya, Ken Iverson (penemu APL) mengatakan ini:

Misalnya, fungsi bilangan bulat yang dilambangkan dengan ιmenghasilkan vektor nbilangan bulat pertama ketika diterapkan pada argumen n, ...

Itu ιadalah huruf Yunani iota huruf kecil .

Dalam kutipan di atas, saya mengetik ι, U + 03B9, "GREEK SMALL LETTER IOTA" , tetapi Unicode sebenarnya memiliki titik kode khusus untuk iota APL: adalah U + 2373, "APL FUNGSIONAL SIMBOL IOTA" .


Menanggapi tuntutan komentator, saya akan membahas etimologi "iota" lebih lanjut dalam konteks ini.

Jawaban yang paling mungkin adalah bahwa Ken Iverson menginginkan simbol yang akan mengingatkan pengguna akan kata "integer" dan penggunaan huruf "i" sebagai variabel integer yang khas, terutama untuk array subscript.

Tapi anggaplah ada arti yang lebih dalam.

Menurut Oxford English Dictionary, “iota” adalah “Nama huruf Yunani Ι, ι, sesuai dengan Roman I, i; huruf terkecil dari alfabet Yunani "(menurut saya terkecil secara fisik, bukan alfabet), dan juga berarti" Paling sedikit, atau sangat kecil, partikel atau kuantitas ". Penggunaan OED yang paling awal dari makna ini adalah dari Clavis mystica oleh Daniel Featley pada 1636:

Apakah kita akan kehilangan, atau dengan licik melewati, ada sedikitpun atau sedikit Booke of God?

Clavis mystica adalah panduan untuk bagian-bagian Alkitab, dan kalimat ini secara khusus merujuk pada Matius 5:18. Edisi 1611 dari King James Version memuat teks ini untuk Matius 5:18 :

matthew 5:18

Transkripsi:

Karena sesungguhnya Aku berfirman kepadamu, Sampai heauen dan paspor bumi, satu iote atau satu gelar, tidak akan lulus dari hukum Taurat, sampai semua terpenuhi.

OED memberikan "iote" sebagai bentuk lain dari "jot", yang (seperti "iota") turun dari kata Yunani "ἰῶτα", yang merupakan nama Yunani untuk huruf yang dimaksud. Mengapa Featley mengubah "iote" menjadi "iota"? Sedihnya, saya tidak punya salinan Clavis mystica di perpustakaan pribadi saya, jadi saya tidak bisa menyelidiki lebih lanjut.

Dalam bahasa Yunani asli dari Matius 5:18, "iote" adalah "ἰῶτα", dan "title" (atau lebih modern, "tittle") adalah "κεραία". Kata "κεραία" berarti, secara kasar, "serif" atau "apostrof". Jadi ayat Alkitab ini merujuk pada gagasan tentang perincian terkecil , dan menggunakan "ἰῶτα" untuk merujuk pada huruf iota dalam perannya sebagai huruf terkecil secara fisik dari alfabet Yunani.

Dengan demikian kita dapat menyimpulkan bahwa fungsi STL iota, dan pendahulunya APL , diberi nama, dengan cara Alkitab, setelah huruf fisik terkecil dari alfabet Yunani "ι", karena fungsi-fungsi ini menghasilkan bilangan bulat yang dipisahkan oleh jumlah terkecil di mana bilangan bulat dapat terpisah.

Menurut Wikipedia , huruf Yunani iota berasal dari huruf Fenisia yōdh.

Ini sejauh pemrograman seperti saat ini saya ingin pergi untuk pertanyaan ini.

rob mayoff
sumber
6
Jadi mengapa Anda memperkenalkan kesalahan ketik? ;-)
subsub
5
Tapi ini hanya sedikit mendorong pertanyaan: mengapa APL memanggil fungsi ini ?
Daniel H
1
Saya pikir APL menggunakan iota karena, setidaknya dalam bahasa Inggris, ini berarti secara kasar, jumlah terkecil yang dapat diukur (misalnya, "Saya tidak peduli satu iota .").
Adrian McCarthy
Wacana keren! Izinkan saya mengomentari diskusi Anda tentang "iota" Vs "iote" Vs "jot". Dalam bahasa kuno tidak ada perbedaan antara huruf I dan J. J tidak dalam alfabet Yunani dan tidak dalam bahasa Romawi, jadi pada dasarnya semua 3 transkripsi merujuk pada huruf yang sama. Artikel WP menyatakan bahwa: "Buku bahasa Inggris pertama yang membuat perbedaan yang jelas antara ⟨i⟩ dan ⟨j⟩ diterbitkan pada 1633", yang 22 tahun lebih lambat dari buku yang Anda rujuk.
Peter K
29

Ini adalah huruf Yunani yang kadang-kadang digunakan dalam matematika untuk menunjukkan set angka atau satuan vektor. Dalam kasus C ++, Anda mendapatkan kumpulan vektor yang dibuat. Tidak ada hubungannya dengan itoa.

patthoyts
sumber
23

std::iota akan mengisi rentang iterator dengan nilai yang meningkat secara berurutan.

Untuk menjawab pertanyaan spesifik Anda, sebenarnya tidak ada artinya. Iota (dilafalkan "eye-oh-duh" atau "eye-oh-tuh" dalam bahasa Inggris) adalah huruf Yunani dengan konotasi matematika.

Ini adalah standar dalam C ++ 11, tetapi tidak dalam standar sebelumnya.

Drew Dormann
sumber
3
Kebanyakan penutur non-Inggris dan saya tidak mengucapkannya "eye-oh-duh"
phuclv
mata-kapal pesiar-ah? Saya tidak peduli sedikitpun (saya benar-benar) :)
Will
5
@ LưuVĩnhPhúc Saya dapat mengkonfirmasi bahwa setidaknya satu penutur asli bahasa Inggris juga tidak mengucapkannya "eye-oh-duh" - Saya mengatakan "eye-oh-tuh" (di mana "uh" adalah vokal yang tidak dibedakan 'ə' di tengah dari "math-ə-matical")
Martin Bonner mendukung Monica
4

Oh, saya selalu mendapat kesan bahwa sejak std::iota(start,end,0)dasarnya berdiri untuk

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

maka pada dasarnya Anda "menetapkan i" untuk setiap elemen array, dan iota adalah bahasa Yunani untuk i, jadi di sana.

(Saya tidak akan terkejut jika itu adalah alasan untuk pilihan APL, disebutkan dalam jawaban @ robmayoff , meskipun saya tidak tahu apakah itu masalahnya.)

einpoklum
sumber
1

Saya mengutip dari halaman ini: iotashaming di mana Anda dapat menemukan lebih banyak tentang subjek ini.

STL sangat dipengaruhi oleh karya Ken Iverson di APL. Dalam kuliah penghargaan Ken's Turing dari tahun 1979 Anda akan menemukan frasa ini:

"Misalnya, fungsi bilangan bulat yang dilambangkan oleh ι menghasilkan vektor bilangan bulat N pertama."

jimifiki
sumber