Haskell详细记住类型签名

时间:2019-02-21 15:54:18

标签: haskell type-inference type-signature

具有此示例:

type Min = Int 
data Prio = Low | Medium | High deriving Show
data Task = Task {
    taskDesc    :: String 
  , taskPrio    :: Prio
  , taskDur     :: Min
} deriving Show 
taskFromTuple :: (String, Prio, Min) -> Task 
taskFromTuple (tDesc, tPrio, tDur) = Task tDesc tPrio tDur
-- tasksFromList :: Functor f => f (String, Prio, Min) -> f Task
tasksFromList = fmap taskFromTuple

如果我省略tasksFromList typesig,则会收到错误消息“ Ambiguous type var ...”。现在,这种类型的标记似乎相对简单,但仍然是要记住的许多类型之一。在编写函数之前,我是否需要很好地学习typeig,以便可以提出正确的类型? 我基本上了解类型标记的含义,但是它们很容易变得很复杂。

尽管与单态性限制问题有关,但问题却有所不同,原因是我想知道是否要花很多精力来学习在函数之前编写类型ig还是专注于函数和希望类型推断会帮我的忙。 @Chi提供了明确的答案。

0 个答案:

没有答案