首页 > 解决方案 > 以下是什么类型?

问题描述

我刚开始学习新的 Haskell,我正在努力确定以下内容的类型:

    1) one x = [x]
    2) three x = (x,x,x)
    3) first x y = x
    4) mult m n = m*n
    5) [(False,’0’),(True,’1’)]

标签: haskelltypes

解决方案


  1. one x = [x]是一个接受一个元素并返回一个仅包含该元素的列表,因此它具有类型one :: a -> [a]
  2. three x = (x,x,x)有平凡的类型three :: a -> (a,a,a)
  3. first x y = x看起来像const具有类型的 Prelude 函数first :: a -> b -> a
  4. mult m n = m*n具有与 相同的类型(*),即(*) :: Num a => a -> a -> a
  5. [(False,’0’),(True,’1’)]甚至不是函数,所以有简单类型:: [(Bool, Char)]

请记住,您始终可以使用 GHCi 函数:t来返回表达式的类型


推荐阅读