美文网首页
Haskell(三)递归

Haskell(三)递归

作者: V_coa | 来源:发表于2016-07-08 21:19 被阅读75次

递归

使用递归求List中得最大值,先设置边界条件,如果List为空,则运行异常,如果List只有一个元素,直接返回,如果List中第一个元素大于尾部的最大值则它是最大的,否则尾部最大值最大
maximum' [] = error "error" maximum' [x] = x maximum' (x:xs) = | x > maxTail = x | otherwise = maxTail' where maxTail = maximum' xs

take' n _
    | n <= 0 = []
take' _ [] = []
take' n (x:xs) = x : take' (n - 1) xs

zip' _ [] = []
zip' [] _ =[]
zip' (x:xs) (y:ys) = (x, y) : zip' xs ys
</pre></code>

####函数
#####Curried functions
本质上Haskell上的函数值有一个参数的,但以前有多个参数的函数是什么回事。例如max函数,其实它也是一个参数,只是先把1作为参数,然后返回另一个函数,继续把2当做参数

max 1 2

(max 1) 2

相关文章

  • Haskell(三)递归

    递归 使用递归求List中得最大值,先设置边界条件,如果List为空,则运行异常,如果List只有一个元素,直接返...

  • Haskell 基本语法(三)递归

    递归是一种定义函数的方式,在该方式下,函数的定义中调用了该函数本身。有点像俄罗斯套娃。 数学中的定义很多时候都会用...

  • 05 递归

    Haskell 中没有 for 和 while 循环,而使用递归解决循环问题。 所谓递归,就是将一个大问题分解为两...

  • thinking in haskell-递归

    -- 递归查找数组的最大值(1) -- 递归查找数组的最大值(2) -- 将a重复i次返回列表

  • Haskell 实现全排列

    用Haskell语言实现一个全排列,我们使用递归的思想: 定义这个函数名为permute :: [a] -> [[...

  • Haskell入门(四):递归(recursion)

    参考教材:Learn You a Haskell for Great Good (http://learnyoua...

  • 函数式的宗教-00: 认识lisp(clojure)与haske

    总体大纲: lisp与haskell简单介绍 lisp与haskell应用领域 lisp与haskell技术分析 ...

  • monad以及monad的四条定理

    haskell的范畴是hask范畴(haskell的所有类型隶属于hask范畴),所以haskell的所有函子都是...

  • 01 数据类型

    swift中结构体在haskell中的描述 枚举类型在haskell中的描述 枚举携带类型在haskell中描述 ...

  • 递归原理

    递归原理 递归由三部分组成:递归条件、递归前进段(不符合条件继续执行)、递归返回段(符合条件返回)递归归根结底还是...

网友评论

      本文标题:Haskell(三)递归

      本文链接:https://www.haomeiwen.com/subject/kdmqkttx.html