อ่าน 4 นาที
ประเภทผลิตภัณฑ์
ใน ภาษาโปรแกรม และ ทฤษฎีประเภท ผลคูณ ของประเภท คือ ประเภทผสมอีกประเภทหนึ่งในโครงสร้าง ตัวถูกดำเนินการของผลคูณคือ ประเภท...
ประเภทผลิตภัณฑ์
ในภาษาโปรแกรมและทฤษฎีประเภทผลคูณของประเภทคือประเภทผสมอีกประเภทหนึ่งในโครงสร้าง ตัวถูกดำเนินการของผลคูณคือประเภทและโครงสร้างของประเภทผลคูณจะถูกกำหนดโดยลำดับคงที่ของตัวถูกดำเนินการในผลคูณ อินสแตนซ์ของประเภทผลคูณจะรักษาลำดับคงที่นั้นไว้ แต่ในทางกลับกันอาจมีอินสแตนซ์ที่เป็นไปได้ทั้งหมดของประเภทข้อมูลพื้นฐานการแสดงออกของอินสแตนซ์ของประเภทผลคูณจะเป็นทูเปิลและเรียกว่า "ประเภททูเปิล" ของการแสดงออก ผลคูณของประเภทคือผลคูณโดยตรงของสองประเภทขึ้นไป
ถ้ามีส่วนประกอบเพียงสองประเภท ก็สามารถเรียกว่า "ประเภทคู่" ได้ ตัวอย่างเช่น ถ้าส่วนประกอบสองประเภทคือและเป็นเซตของค่าที่เป็นไปได้ทั้งหมดของประเภทนั้น ประเภทผลคูณที่เขียนขึ้นจะมีองค์ประกอบที่เป็นคู่โดยที่และเป็นอินสแตนซ์ของและตามลำดับ ประเภทคู่เป็นกรณีพิเศษของประเภทคู่แบบพึ่งพาโดยที่ประเภทอาจขึ้นอยู่กับอินสแตนซ์ที่เลือกจาก
ในหลายภาษา ประเภทข้อมูลแบบผลคูณจะมีรูปแบบเป็น ประเภทข้อมูลแบบ เรคอร์ดซึ่งสามารถเข้าถึงส่วนประกอบของทูเพิลได้โดยใช้ป้ายกำกับในภาษาที่มีประเภทข้อมูลเชิงพีชคณิตเช่น ภาษา การเขียนโปรแกรมเชิงฟังก์ชัน ส่วนใหญ่ ประเภทข้อมูลเชิงพีชคณิตที่มีตัวสร้างเพียงตัวเดียวจะสมมูลกับประเภทข้อมูลแบบผลคูณ
ในการติดต่อสื่อสารระหว่างเคอร์รีและโฮเวิร์ดประเภท ของผลิตภัณฑ์จะเชื่อมโยงกับการเชื่อมต่อเชิงตรรกะ ( AND ) ในตรรกศาสตร์
แนวคิดนี้ขยายไปถึงผลคูณของชนิดข้อมูลจำนวนจำกัดใดๆ ( ชนิดข้อมูลผลคูณแบบ n-ary) โดยตรง และในกรณีนี้ มันจะบ่งบอกลักษณะของนิพจน์ที่ทำหน้าที่เหมือนทูเปิลของนิพจน์ของชนิดข้อมูลที่สอดคล้องกัน รูปแบบที่เสื่อมสภาพของชนิดข้อมูลผลคูณคือชนิดข้อมูลหน่วย : มันคือผลคูณของชนิดข้อมูลที่ไม่มีอยู่จริง
ใน ภาษาโปรแกรม แบบส่งค่า (call-by-value)ประเภทผลคูณสามารถตีความได้ว่าเป็นเซตของคู่ โดยที่ส่วนประกอบแรกเป็นค่าในประเภทแรก และส่วนประกอบที่สองเป็นค่าในประเภทที่สอง กล่าวโดยย่อคือ เป็นผลคูณแบบคาร์ทีเซียนและสอดคล้องกับผลคูณในหมวดหมู่ของประเภท
ภาษา โปรแกรมเชิงฟังก์ชันส่วนใหญ่มีแนวคิดพื้นฐานเกี่ยวกับประเภทผลคูณ ตัวอย่างเช่น คำว่า "ผลคูณ" ถูกเขียนไว้ในMLและHaskell ในทั้งสองภาษานี้ มีการเขียนทูเพิลและส่วนประกอบของทูเพิลจะถูกดึงออกมาโดยการจับคู่รูปแบบนอกจากนี้ ภาษาโปรแกรมเชิงฟังก์ชันหลายภาษายังมีประเภทข้อมูลเชิงพีชคณิต ที่ทั่วไปกว่า ซึ่งขยายทั้งประเภทผลคูณและประเภทผลรวมประเภทผลคูณเป็นคู่ตรงข้ามของประเภทผลรวม T1 * T2 * ... * Tn(T1, T2, ..., Tn)(v1, v2, ..., vn)
ประเภทผลิตภัณฑ์ในภาษาโปรแกรม
- C++กำหนดคลาส
std::tuple(แสดงtuple<Ts...>โดยใช้เทมเพลตแบบแปรผัน ) [ 1 ]และสำหรับกรณีเฉพาะขององค์ประกอบสองตัวจะกำหนดstd::pair(แสดงpair<T, U>) [ 2 ]std::tupleซึ่งอาจว่างเปล่า (tuple<>) - C# / .NET Frameworkกำหนดคลาส
System.Tupleมีการสร้างอินสแตนซ์เฉพาะสำหรับ 1 ถึง 8 องค์ประกอบ สำหรับกรณีเฉพาะของสององค์ประกอบ (คู่) จะใช้Tuple<T1, T2>[ 3 ] ในการสร้างทูเปิลที่มีส่วนประกอบเก้าส่วนขึ้นไป พารามิเตอร์สุดท้ายTRestของTuple<T1, T2, T3, T4, T5, T6, T7, TRest>จะถูกส่งเป็นทูเปิลอีกตัวหนึ่ง[ 4 ]สำหรับการวนซ้ำคอลเลกชันเช่นประเภทพจนานุกรม จะมีคลาสSystem.Collections.Generic.KeyValuePair(แสดงเป็นKeyValuePair<TKey, TValue>) ให้ใช้งาน[ 5 ] - Goไม่มีประเภททูเพิล แต่สามารถแสดงค่าส่งคืนหลายค่าในฟังก์ชันได้ในรูปแบบของทูเพิล[ 6 ]
- Haskellมีประเภท
Data.Tupleข้อมูล[ 7 ] - Javaไม่มีประเภททูเพิลทั่วไป แต่JavaFXมีประเภท
javafx.util.Pair(แสดงเป็นPair<K, V>) [ 8 ]สำหรับการวนซ้ำผ่านคอนเทนเนอร์แบบเชื่อมโยง เช่นjava.util.Mapคู่ในแผนที่จะแสดงMap.Entry<K, V>เป็น[ 9 ] - Kotlinไม่มีประเภททูเพิลทั่วไป แต่มีคลาส
kotlin.Pair(แสดงPair<A, B>) [ 10 ]และkotlin.Triple(แสดงTriple<A, B, C>) [ 11 ] - Pythonมี
tupleคอลเลกชันที่สามารถระบุคำอธิบายประกอบได้typing.Tuple(แสดงออกมา) [ 12 ]Tuple[T1, T2, ..., TN] - Rustกำหนดประเภททูเพิลพื้นฐาน ซึ่งแสดงเป็นและคู่หนึ่งก็คือ[ 13 ]
(T1, T2, ..., TN)(T, U) - Scalaกำหนดคลาส
scala.Tuple[ 14 ] ซึ่งรองรับ วัตถุระหว่าง 2 ถึง 22 รายการ(แสดงเป็น) [ 15 ]ถึง(แสดงเป็น) [ 16 ]scala.Tuple2Tuple2[A, B]scala.Tuple22Tuple22[A, B, ..., V] - Swiftแสดงทูเพิลเป็น. [ 17 ]
(T1, T2, ..., TN)
ดูเพิ่มเติม
สรุปเนื้อหา
ข้อมูลสำคัญจากบทความ
ข้อมูลสำคัญเกี่ยวกับ ประเภทผลิตภัณฑ์
ใน ภาษาโปรแกรม และ ทฤษฎีประเภท ผลคูณ ของประเภท คือ ประเภทผสมอีกประเภทหนึ่งในโครงสร้าง ตัวถูกดำเนินการของผลคูณคือ ประเภท...
ประเภทผลิตภัณฑ์ในภาษาโปรแกรม
C++ กำหนดคลาส std::tuple (แสดง tuple โดยใช้ เทมเพลตแบบแปรผัน ) [ 1 ] และสำหรับกรณีเฉพาะขององค์ประกอบสองตัวจะกำหนด std::pair (แสดง pair ) [ 2 ] std::tuple ซึ่งอาจว่างเปล่า ( tuple<> ) C# / .NET Framework กำหนดคลาส System.
ดูเพิ่มเติม
ผลิตภัณฑ์ (ทฤษฎีหมวดหมู่) ผลคาร์ทีเซียน บันทึก (วิทยาการคอมพิวเตอร์) โครงสร้าง (ภาษาโปรแกรมมิ่งซี) ประเภทผลรวม ประเภทผลหาร ดึงข้อมูลมาจาก " https://en.wikipedia.org/w/index.php?title=Product_type&oldid=1322824525 "