On Jan 6, 2008 4:40 PM, Jonathan Cast <[EMAIL PROTECTED]> wrote:
> let is always recursive in Haskell, so this is a recursive definition
> of pos.  To break the recursion, use
>
>
> matchReverse (x:xs) (y:ys) pos = let (matched, pos') = matchReverse
> xs ys (pos + 1)
>                                   in if matched then ((x==y), pos')
>                                                else (False, pos')

Actually, I think he meant

matchReverse (x:xs) (y:ys) pos =
        let (matched, pos') = matchReverse xs ys (pos + 1)
        in if matched then ((x==y), pos) else (False, pos')

As as side note, GHC's flag -Wall would have warned about creating a
variable with a name already in scope.

-- 
Felipe.
_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe

Reply via email to