2
假設我有兩個功能,像這樣:有什麼辦法可以刪除這個函數中的類型冗餘?
food :: Eatable a => String -> a
food animalType = getAnimal animalType
getAnimal :: Eatable a => String -> a
getAnimal "cat" = Cat
getAnimal "dog" = Dog
凡Cat
和Dog
都是Eatable
秒。
所以我可以調用函數的食物像這樣:
let cat = food "cat" :: Cat
但具有串在那裏似乎是多餘的。有沒有什麼辦法可以改變它:
let cat = food :: Cat
是不是隻是從'getAnimal'中刪除'String'的作品? – Satvik