กลับไปหน้าบทความ

อ่าน 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)

ดูเพิ่มเติม

ดึงข้อมูลมาจาก " https://en.wikipedia.org/w/index.php?title=Product_type&oldid=1322824525 "

สรุปเนื้อหา

ข้อมูลสำคัญจากบทความ

ข้อมูลสำคัญเกี่ยวกับ ประเภทผลิตภัณฑ์

ใน ภาษาโปรแกรม และ ทฤษฎีประเภท ผลคูณ ของประเภท คือ ประเภทผสมอีกประเภทหนึ่งในโครงสร้าง ตัวถูกดำเนินการของผลคูณคือ ประเภท...

ประเภทผลิตภัณฑ์ในภาษาโปรแกรม

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 "