[Haskell-cafe] How to understand such a `case` ?
zaxis
z_axis at 163.com
Tue Dec 8 20:26:11 EST 2009
thanks for your quick answer ! Then what's the advantage using such a `case`
not using `if` statement given by you ? For me, the `if` statement is more
clear .
jmillikin wrote:
>
> Sorry; forgot to CC the list
>
> That case is equivalent to:
>
> if filex
> then return $ Just $ file x
> else if filex'
> then return $ Just $ file' x
> else findHelper xs
>
>
> The specific syntax being used is called a "pattern guard":
> http://www.haskell.org/haskellwiki/Pattern_guard
>
> On Tue, Dec 8, 2009 at 16:59, zaxis <z_axis at 163.com> wrote:
>>
>> findHelper (x:xs) = do -- not lazy, but that's not really important here
>> filex <- fileExists (file x)
>> filex' <- fileExists (file' x)
>> case () of
>> _
>> | filex -> return $ Just $ file x
>> | filex' -> return $ Just $ file' x
>> | otherwise -> findHelper xs
>> file x = foldl1 joinFileName (x ++ [helper])
>> file' x = (file x) ++ (getConfig "exe_ext")
>>
>> Sincerely!
>>
>> -----
>> fac n = foldr (*) 1 [1..n]
>> --
>> View this message in context:
>> http://old.nabble.com/How-to-understand-such-a-%60case%60---tp26703526p26703526.html
>> Sent from the Haskell - Haskell-Cafe mailing list archive at Nabble.com.
>>
>> _______________________________________________
>> Haskell-Cafe mailing list
>> Haskell-Cafe at haskell.org
>> http://www.haskell.org/mailman/listinfo/haskell-cafe
>>
> _______________________________________________
> Haskell-Cafe mailing list
> Haskell-Cafe at haskell.org
> http://www.haskell.org/mailman/listinfo/haskell-cafe
>
>
-----
fac n = foldr (*) 1 [1..n]
--
View this message in context: http://old.nabble.com/How-to-understand-such-a-%60case%60---tp26703526p26703743.html
Sent from the Haskell - Haskell-Cafe mailing list archive at Nabble.com.
More information about the Haskell-Cafe
mailing list