跳转至内容

Haskell/Solutions/更多关于函数

摘自维基教科书,面向开放世界的开放书籍

← 返回到函数的更多内容

练习
  • Lambdas 是一种避免定义不必要的函数的不二法门。将下列代码中的 let 绑定或 where 绑定转换为 lambdas
    • map f xs,其中 f x = x * 2 + 3
    • let f x y = read x + y,转换为 foldr f 1 xs
  • 分段只是 lambda 操作的语法糖。即 `(+2)` 等效于 `\x -> x + 2`。要如何转换下列分段?它们的数据类型又是什么?
    • (4+)
    • (1 `elem`)
    • (`notElem` "abc")
map (\x -> x * 2 + 3) xs
foldr (\x y -> read x + y) 1 xs

(\x -> 4 + x) :: Int -> Int
(\xs -> elem 1 xs) :: [Int] -> Bool
(\c -> notElem c "abc") :: Char -> Bool
华夏公益教科书