Generics 如何定义泛型类型为;“可打印”;
我必须在预订单上打印多态树类型。我遇到了一些麻烦,因为我的泛型类型t可能无法“打印”。有人知道怎么卖这个吗?是否有必要告诉haskell只接受“可打印”类型?(在控制台上打印,所以应该是“Show”之类的内容) 代码如下:Generics 如何定义泛型类型为;“可打印”;,generics,haskell,printing,show,Generics,Haskell,Printing,Show,我必须在预订单上打印多态树类型。我遇到了一些麻烦,因为我的泛型类型t可能无法“打印”。有人知道怎么卖这个吗?是否有必要告诉haskell只接受“可打印”类型?(在控制台上打印,所以应该是“Show”之类的内容) 代码如下: import Char data Tree t = NilT | Node t (Tree t) (Tree t) instance Show (Tree t) where show = func func :: (Tree t) -> S
import Char
data Tree t =
NilT |
Node t (Tree t) (Tree t)
instance Show (Tree t) where
show = func
func :: (Tree t) -> String
func (NilT) = ""
func (Node t a b) = t ++ (func a) ++ (func b)
谢谢 您可以在实例声明和以下类型声明中要求
t
成为Show
的实例:
instance Show t => Show (Tree t)
func :: Show t => Tree t -> String
要使用它,您的预顺序遍历将需要调用show
func (Node t a b) = show t ++ func a ++ func b
您可以在实例声明和以下类型声明中要求
t
成为Show
的实例:
instance Show t => Show (Tree t)
func :: Show t => Tree t -> String
要使用它,您的预顺序遍历将需要调用show
func (Node t a b) = show t ++ func a ++ func b