-4

この「インスタンス」がHaskellで何を意味するのか理解できません(19行目):

16 > type Prog = [Function]
17 > data Function = Defun String String Exp
18 > --                deriving Show
19 > instance Show Function where
20 >   show (Defun n p e) = "\n" ++ n ++ "(" ++ p ++ ") { return " ++ show e ++ "; }\n"
21 >   showList [] = showString ""
22 >   showList (f:fs) = shows f . showl fs
23 >       where showl [] = showString ""
24 >             showl (f:fs) = shows f . showl fs

どうも。

4

1 に答える 1

5

型クラスについて読んでください。

Show型クラスであり、データ型のShowインスタンスを定義してFunctionいるので、次のようなことができます

show (Defun "a" "b" someExpr)

の show 定義を使用して、これを文字列表現に変換しFunctionます。オブジェクト指向のバックグラウンドを持っている場合は、データ型のshow関数をオーバーロードするように考えることができます。Function

于 2012-10-25T06:03:08.270 に答える