繁体   English   中英

如何定义泛型类型是“可打印的”

[英]How to define that a generic type is “printable”

我必须预先打印一个多态树类型。 我遇到了一些麻烦,因为我的通用类型t可能不是“可打印的”。 有谁知道怎么卖这个? 反正有没有告诉haskell只接受“可打印”类型? (在控制台上打印,所以它应该像“显示”一样)

这是代码:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM