ฉันพยายามที่จะรวมไดอะแกรมหลายอย่างเข้าด้วยกันในตาราง ฉันคิดว่าสิ่งนี้เรียกว่า"ดัชนีการพิมพ์"คนถ่ายภาพทำอย่างนั้นเมื่อพวกเขาต้องทบทวนภาพถ่ายจำนวนมากในครั้งเดียว อย่างไรก็ตามนี่คือรหัส:
main :: IO ()
main = mainWith @(Diagram B)
$ (tile . fmap renderOne) examples
renderOne :: AnyGraph -> Diagram B
renderOne (AnyGraph gr) = ...
tile :: [Diagram B] -> Diagram B
tile xs = let columns = (ceiling . sqrt . fromIntegral . length) xs
in (vcat . fmap hcat . List.chunksOf columns) xs
มันไม่ทำงานอย่างที่ฉันคาดไว้ แต่ให้เราเข้าใกล้มันทีละน้อย อันดับแรกนี่คือการแสดงผลของไทล์เดียว:
ตอนนี้ให้เราhcat
สี่แผ่นด้วยกัน
เพิ่มแถวที่สอง: (ดูว่าคุณลักษณะที่ไม่เปลี่ยนแปลงขนาดนั้นข้นอย่างไร)
และนี่คือลักษณะที่มี 4 แถว:
ออกไปจากมือ!
สำหรับฉันแล้วมันดูเหมือนว่าคุณสมบัติที่ไม่แปรเปลี่ยนเช่นขนาดหัวลูกศรนั้นจะถูกปรับสัดส่วนตามสัดส่วนของพื้นที่ของภาพ แต่ในกรณีนี้ฉันต้องขยายไดอะแกรมโดยไม่ต้องปรับคุณสมบัติเหล่านั้นอีกครั้ง ฉันจะบรรลุสิ่งนั้นได้อย่างไร