跳转到内容

Haskell/解决方案/类型基础

来自维基教科书,开放世界中的开放书籍

← 返回类型基础

练习
  1. 尝试对字面值 "H" 使用 :type(注意双引号)。发生了什么?为什么?
  2. 尝试对字面值 'Hello World' 使用 :type(注意单引号)。发生了什么?为什么?
  1. "H" 是一个只有一个元素的 String
  2. 'Hello World' 是无效的,因为 Char 只包含一个字符。
练习

以下函数的类型是什么?对于涉及数字的任何函数,你可以假设数字是 Int。

  1. negate 函数,它接受一个 Int 并返回该 Int 的符号交换后的值。例如,negate 4 = -4,以及 negate (-2) = 2
  2. (||) 函数,读作“或”,它接受两个 Bool 并返回第三个 Bool,如果两个参数中的任何一个为真,则返回 True,否则返回 False。
  3. 一个 monthLength 函数,它接受一个 Bool,如果我们考虑的是闰年则为 True,否则为 False,以及一个 Int,表示月份的数字;并返回另一个 Int,表示该月份的天数。
  4. f x y = not x && y
  5. g x = (2*x - 1)^2
  1. negate :: Int -> Int
  2. || :: Bool -> Bool -> Bool
  3. monthLength :: Bool -> Int -> Int

而在第二轮

  1. f :: Bool -> Bool -> Bool
  2. g :: Int -> Int
华夏公益教科书