小编kjs*_*ian的帖子

Haskell 中的返回类型多态性

我试图理解 haskell 中的多态性。给出下面的典型示例

module Main where

data Dog = Dog
data Cat = Cat

class Animal a where
    speak :: a -> String
    getA :: a

instance Animal Dog where
    speak _ = "Woof"
    getA = Dog

instance Animal Cat where
    speak _ = "Meow"
    getA = Cat

doA animal = do
    putStrLn $ speak animal

main :: IO ()
main = do
    doA Dog
    doA Cat
    doA (getA :: Dog)
Run Code Online (Sandbox Code Playgroud)

我的getA函数是Animal类型类的一部分,并且它按预期工作。getA只要我提供类似的类型注释我就可以使用read。 …

polymorphism haskell

4
推荐指数
1
解决办法
189
查看次数

标签 统计

haskell ×1

polymorphism ×1