Dynamic dispatch in Haskell

后端 未结 4 742
孤独总比滥情好
孤独总比滥情好 2020-12-22 19:40

Programs written in, for example, Java rely a lot on dynamic dispatch.

How are such programs expressed in functional languages such as Haskell?

In other word

4条回答
  •  伪装坚强ぢ
    2020-12-22 19:46

    Maybe you need ADT plus pattern matching ?

    data Animal = Dog {dogName :: String}
                | Cat {catName :: String}
                | Unicorn
    
    say :: Animal -> String
    say (Dog {dogName = name}) = "Woof Woof, my name is " ++ name
    say (Cat {catName = name}) = "Meow meow, my name is " ++ name
    say Unicorn = "Unicorns do not talk"
    

提交回复
热议问题