iota ของ std :: iota หมายถึงอะไร


146

ฉันสมมติว่า "i" เพิ่มขึ้นและ "a" ได้รับมอบหมาย แต่ฉันไม่สามารถหาคำตอบได้ มันดูคล้ายกับที่ไม่ได้มาตรฐานitoaซึ่งฉันคิดว่ามันสับสน


10
เป็นไปได้จาก APL ตัวอักษรกรีก Iota ใช้เพื่อสร้างเวกเตอร์ของจำนวนเต็มต่อเนื่อง
cmbuckley

3
หากคุณคิดว่าสับสน Google Go จะสร้างiotaตัวระบุ <s> คำหลัก </s> เป็นพิเศษซึ่งมีค่าจะเพิ่มขึ้นหนึ่งครั้งต่อคำจำกัดความ แต่เมื่อคุณกำหนดค่าคงที่เท่านั้น
Potatoswatter

3
ตกลงเกี่ยวกับitoaความสับสน; ฉันมีความคิดเดียวกัน
NHDaly


1
ตลกฉันก็คิดว่าชื่อมาจากการ "atoi" ไปข้างหลัง - การเรียงลำดับของสิ่งที่ตรงกันข้าม ไม่สมเหตุสมผลจริงๆว่า
Petter

คำตอบ:


184

จากเอกสาร SGI STL ดั้งเดิม :

ชื่อ iota นั้นมาจากภาษาโปรแกรม APL

ในการบรรยายรางวัลทัวริงของเขา Ken Iverson (ผู้ประดิษฐ์ APL) กล่าวว่า:

ตัวอย่างเช่นฟังก์ชั่นจำนวนเต็มแสดงโดยιผลิตเวกเตอร์ของnจำนวนเต็มแรกเมื่อนำไปใช้กับการโต้แย้งn...

นั่นιคือกรณีที่ต่ำกว่าตัวอักษรกรีกส่วนน้อยนิด

ในใบเสนอราคาดังกล่าวข้างต้นผมพิมพ์ι, U + 03B9“เล็กกรีกจดหมาย IOTA”แต่ Unicode จริงมีจุดรหัสเฉพาะสำหรับส่วนน้อยนิดของ APL: เป็นU + 2373“APL FUNCTIONAL SYMBOL IOTA”


ในการตอบสนองต่อความต้องการของผู้แสดงความคิดเห็นฉันจะกล่าวถึงรากศัพท์ของ "iota" ในบริบทนี้

คำตอบที่น่าสนใจที่สุดคือ Ken Iverson ต้องการสัญลักษณ์ที่จะเตือนผู้ใช้คำว่า "จำนวนเต็ม" และการใช้ตัวอักษร "i" เป็นตัวแปรจำนวนเต็มทั่วไปโดยเฉพาะอย่างยิ่งสำหรับการห้อยแถวลำดับ

แต่สมมติว่ามีความหมายที่ลึกกว่า

อ้างอิงจาก Oxford English Dictionary“ iota” คือ“ ชื่อของตัวอักษรกรีกΙ, ι, ตรงกับ Roman I, i; ตัวอักษรที่เล็กที่สุดของตัวอักษรกรีก” (เล็กที่สุดทางร่างกายไม่ใช่ตามลำดับตัวอักษรฉันเข้าใจ) และยังหมายถึง“ อย่างน้อยที่สุดหรือเล็กมากอนุภาคหรือปริมาณ” การใช้ OED ที่รู้จักกันโดยเร็วที่สุดในความหมายนี้มาจากClavis mystica โดย Daniel Featley ในปี 1636:

เราจะสูญเสียหรือผ่านไปอย่างไม่น่าเชื่อสักนิดหรือเล็กน้อยจาก Booke of God?

Clavis mysticaเป็นแนวทางในบางส่วนของพระคัมภีร์และประโยคนี้มีความหมายโดยเฉพาะอย่างยิ่งในแมทธิว 5:18 ฉบับคิงเจมส์ 1611 ฉบับนี้มีเนื้อหาสำหรับมัทธิว 5:18 :

แมทธิว 5:18

ถอดความ:

สำหรับฉันจริงพูด vnto คุณจนถึง heauen และแผ่นดิน passe, iote หนึ่งหรือหนึ่งชื่อจะไม่ผ่านฉลาดจากกฎหมายจนกว่าจะสำเร็จทั้งหมด

OED ให้ "iote" เป็นรูปแบบอื่นของ "jot" ซึ่ง (เช่น "iota") สืบทอดมาจากคำภาษากรีก "ἰῶτα" ซึ่งเป็นชื่อภาษากรีกสำหรับตัวอักษรที่เป็นปัญหา เหตุใด Featley จึงเปลี่ยน“ iote” เป็น“ iota” น่าเศร้าที่ฉันไม่มีสำเนาของClavis mysticaในห้องสมุดส่วนตัวของฉันดังนั้นฉันจึงไม่สามารถตรวจสอบได้อีก

ในภาษากรีกดั้งเดิมของแมทธิว 5:18“ iote” คือ“ ἰῶτα” และ“ ชื่อ” (หรือทันสมัยกว่า“ tittle”) คือ“ κεραία” คำว่า "κεραία" หมายถึงประมาณ "serif" หรือ "apostrophe" ดังนั้นข้อพระคัมภีร์นี้อ้างถึงความคิดของรายละเอียดที่เล็กที่สุดและใช้“ ἰῶτα” เพื่ออ้างถึงตัวอักษรเล็กน้อยในบทบาทของมันเป็นตัวอักษรที่เล็กที่สุดของตัวอักษรกรีก

ดังนั้นเราอาจสรุปได้ว่าฟังก์ชัน STL iotaและ APL มาก่อนถูกตั้งชื่อตามวิธีการของพระคัมภีร์หลังจากตัวอักษรตัวเล็กที่สุดของตัวอักษรกรีก "functions" เพราะฟังก์ชั่นเหล่านี้ผลิตจำนวนเต็มคั่นด้วยจำนวนที่น้อยที่สุดซึ่งอาจเป็นจำนวนเต็ม แยกจากกัน

ตามตัวอักษรวิกิพีเดียตัวอักษรกรีกนิดเดียวมาจากตัวอักษรฟินิเซียนyōdh

นี่คือการเขียนโปรแกรมที่ไกลที่สุดเท่าที่ฉันอยากจะไปสำหรับคำถามนี้


6
แล้วทำไมคุณถึงแนะนำตัวพิมพ์ผิด? ;-)
subsub

5
แต่นี่เป็นเพียงแค่ผลักดันคำถามกลับบิต: ทำไม APL เรียกใช้ฟังก์ชันนี้?
Daniel H

1
ฉันคิดว่า APL ใช้ไอโอต้าเพราะอย่างน้อยในภาษาอังกฤษมันหมายถึงคร่าวๆเป็นจำนวนที่วัดได้น้อยที่สุด (เช่น "ฉันไม่สนใจไอโอต้าหนึ่งตัว")
Adrian McCarthy

วาทกรรมเจ๋ง! ให้ฉันแสดงความคิดเห็นที่นี่ในการสนทนาของคุณของ "iota" Vs "iote" Vs "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

ตาเรือยอชท์-ah? ฉันไม่สนใจหนึ่งส่วนน้อยนิด (ผมทำจริงๆ) :)
Will

5
@ LưuVĩnhPhúcฉันสามารถยืนยันได้ว่ามีเจ้าของภาษาอังกฤษอย่างน้อยหนึ่งคนไม่ออกเสียงว่า "eye-oh-duh" อย่างใดอย่างหนึ่ง - ฉันพูดว่า "eye-oh-tuh" (โดยที่ "uh" เป็นเสียงสระที่แตกต่าง 'ə' ที่อยู่ตรงกลาง ของ "math-ə-matical")
Martin Bonner สนับสนุน Monica

4

โอ้ฉันมักจะอยู่ภายใต้ความประทับใจที่std::iota(start,end,0)เป็นหลัก

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

จากนั้นคุณต้อง "กำหนด i" ให้กับองค์ประกอบอาเรย์แต่ละตัวและส่วนเล็กน้อยคือกรีกสำหรับฉันดังนั้นที่นั่น

(ฉันจะไม่แปลกใจถ้านั่นเป็นเหตุผลสำหรับการเลือก APL ที่กล่าวถึงในคำตอบของ @ robmayoff แม้ว่าฉันจะไม่รู้ว่าเป็นกรณีนี้หรือไม่)


1

ฉันพูดจากหน้านี้: iotashamingที่คุณสามารถหาข้อมูลเพิ่มเติมเกี่ยวกับเรื่องนี้

STL ได้รับอิทธิพลอย่างมากจากงานของ Ken Iverson เกี่ยวกับ APL ในการบรรยายรางวัล Ken's Turing จากปี 1979 คุณจะพบวลีนี้:

"ตัวอย่างเช่นฟังก์ชันเลขจำนวนเต็มที่แทนด้วยιจะสร้างเวกเตอร์ของจำนวนเต็ม N ตัวแรก"

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.