ง่ายพอที่จะแสดงต้นไม้หรือรายการใน haskell โดยใช้ประเภทข้อมูลเกี่ยวกับพีชคณิต แต่คุณจะใช้กราฟแทนกราฟได้อย่างไร? ดูเหมือนว่าคุณต้องมีพอยน์เตอร์ ฉันเดาว่าคุณอาจมีบางอย่างเช่น
type Nodetag = String
type Neighbours = [Nodetag]
data Node a = Node a Nodetag Neighbours
และนั่นจะสามารถใช้งานได้ อย่างไรก็ตามมันรู้สึกแยกออกเล็กน้อย การเชื่อมโยงระหว่างโหนดต่างๆในโครงสร้างไม่ได้ "ให้ความรู้สึก" มั่นคงเท่ากับการเชื่อมโยงระหว่างองค์ประกอบก่อนหน้าและถัดไปในปัจจุบันในรายการหรือพ่อแม่และลูกของโหนดในทรี ฉันมีลางสังหรณ์ว่าการปรับเปลี่ยนพีชคณิตบนกราฟตามที่ฉันกำหนดไว้มันจะถูกขัดขวางอยู่บ้างจากระดับของทิศทางที่แนะนำผ่านระบบแท็ก
โดยหลักแล้วมันคือความรู้สึกสงสัยและการรับรู้ถึงความไม่สมดุลที่ทำให้ฉันถามคำถามนี้ มีวิธีการกำหนดกราฟใน Haskell ที่ดีกว่า / สวยงามกว่าทางคณิตศาสตร์หรือไม่? หรือฉันสะดุดกับบางสิ่งบางอย่างที่ยาก / พื้นฐานโดยเนื้อแท้? โครงสร้างข้อมูลแบบเรียกซ้ำนั้นดูดี แต่ดูเหมือนจะเป็นอย่างอื่น โครงสร้างข้อมูลอ้างอิงตนเองในความหมายที่แตกต่างกันว่าต้นไม้และรายการอ้างอิงตนเองอย่างไร เช่นเดียวกับรายการและต้นไม้เป็นข้อมูลอ้างอิงตัวเองในระดับประเภท แต่กราฟจะอ้างอิงตัวเองในระดับค่า
แล้วเกิดอะไรขึ้น?
fgl
แพคเกจการพัฒนามาจากนี้