ตัวอย่าง การประกาศ DU (Discriminated Unions) ชื่อ Folder
แบบ Recursive เพื่อจำลองโครงสร้าง Folder โดยใน Folder สามารถมีได้ทั้งไฟล์และ Folder ย่อย
F#
F# มี Syntax สำหรับประกาศ DU และดึงค่าของแต่ละ Tag ด้วย Pattern Matching
ตัวอย่าง การดึงข้อมูลจาก DU ผ่านฟังก์ชัน print
Rust
Rust ไม่มี DU แต่สามารถใช้ Value Enum เพื่อจำลอง DU โดยสามารถดึง Value ของแต่ละ Element ด้วย Pattern Matching คล้ายกับ F#
TypeScript
ใช้วิธีประกาศ DU ด้วย Type Alias + Union และดึงค่าใน DU ผ่าน Type Guard เช่น ใช้ฟังก์ชัน isFolder
สำหรับตรวจสอบว่า Item ที่ส่งเข้ามาเป็น Folder หรือไม่