美文网首页
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(三)递归

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