I missed the part where you talked about -Wall. Sorry.
On 5/3/10, aditya siram <aditya.si...@gmail.com> wrote: > Cool. That makes way more sense. > > I thought that ghc -Wall picked these up. So at least this problem > would go away if warnings were turned on (and heeded) by default. > > Besides that from my own experience I'd strongly encourage people to > use HLint [1] . > > -deech > > [1 ] http://hackage.haskell.org/package/hlint > > On 5/3/10, Ivan Miljenovic <ivan.miljeno...@gmail.com> wrote: >> On 3 May 2010 14:17, aditya siram <aditya.si...@gmail.com> wrote: >>> I'm a little confused about this too. I've seen many functions defined >>> like: >>> f x = (\s -> ...) >>> which is a partial function because it returns a function and is the >>> same >>> as: >>> f x s = ... >> >> No, that's a partially applied function. >> >> A partial function is one such as: >> >> secondElement (_:x:_) = x >> >> Note that it is only defined for lists with at least two elements, for >> any other list (i.e. singleton or empty) it will throw an error; >> -fwarn-incomplete-patterns (which is included in -Wall) tells you >> about these. >> >> You can also argue that functions such as head are partial, as they >> explicitly throw an error if the input data isn't correct. >> >> Partial functions are bad because if you accidentally use one the >> wrong way, your entire program crashes in a flaming wreck. It's much >> better to do something like this: >> >> safeSecondElement (_:x:_) = Just x >> safeSecondElement _ = Nothing >> >> This will work with all possible input types. >> >> For more information, see >> http://en.wikipedia.org/wiki/Partial_function (from the mathematical >> perspective). >> >> -- >> Ivan Lazar Miljenovic >> ivan.miljeno...@gmail.com >> IvanMiljenovic.wordpress.com >> > _______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe