gpt4 book ai didi

haskell - 如何打印列矩阵?

转载 作者:行者123 更新时间:2023-12-02 01:48:43 26 4
gpt4 key购买 nike

我正在尝试在 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 实例?

最佳答案

您可能想考虑像 Brent Yorgey 的 boxes 这样的东西包,我最近接管了它的维护工作。使用 text要将每个数字放在一个框中,请使用 //构建列,然后使用 <+>将列放在一起形成一个矩阵。然后 render结果。您可以使用 cols在将它们粘贴在一起之前比较列的宽度,以便您可以根据需要将它们全部填充到相同的宽度。

请注意Show 用于 pretty-print 。它旨在将人类可读的序列化为类似 Haskell 的格式。

关于haskell - 如何打印列矩阵?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24050075/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com