我想打印出列矩陣的內容在Haskell:如何打印列矩陣?
data Vector n e where
Nil :: Vector Zero e
(:>) :: e -> Vector n e -> Vector (Succ n) e
infixr :>
data Matrix r c e where
ColMatrix :: Vector r e -> Matrix r One e
(:|) :: Vector r e -> Matrix r c e -> Matrix r (Succ c) e
infixr :|
instance Show e => Show (Matrix r c e) where
show (ColMatrix v) = -- ...
show (v :| m) = -- ...
我不知道如何實現這一點,雖然。合乎邏輯的進程是去
1 4 7
2 5 8
3 6 9
但打印到終端並不使這特別容易。
如何爲ColMatrix
實現Show
的這個實例?
這裏真的有兩個問題....你如何做Haskell的東西(即 - 創建Vector的迭代通過值等實例),以及你如何做輸出格式化(即填充在所有的空格中正確地獲得均勻間隔的列)。你更關心哪一方面?後者是有點痛苦的處理,因爲你必須預先迭代所有的值來獲得列的寬度,然後再次運行通過它實際輸出文字.... – jamshidh
@jamshidh老實說,我didn當元素長度不同時,甚至不會考慮列排列......現在,我主要對前者感興趣。當時間到了的時候,我可能會後來/自己找出對齊的東西。 – sdasdadas