RE: [Haskell-cafe] View patterns

2010-03-01 Thread Simon Peyton-Jones
))) = x+y Simon | -Original Message- | From: haskell-cafe-boun...@haskell.org [mailto:haskell-cafe-boun...@haskell.org] On | Behalf Of Andrew Coppin | Sent: 27 February 2010 18:11 | To: haskell-cafe@haskell.org | Subject: [Haskell-cafe] View patterns | | One somewhat neat thing about

Re: [Haskell-cafe] View patterns

2010-02-28 Thread Ivan Miljenovic
On 28 February 2010 05:55, Andrew Coppin andrewcop...@btinternet.com wrote: It won't work for arbitrarily complex structures, however. My main point was that if you make the constructors abstract and provide functions to query the structure, now you can't pattern match against it. We do,

[Haskell-cafe] View patterns

2010-02-27 Thread Andrew Coppin
One somewhat neat thing about Haskell is that you can say case list of [[x], [y,_], [z,_,_]] - x + y + z _ - 0 In Java, you'd have to write something like if (list.length() == 3) { List t1 = list.at(0); if (t1.length() == 1) { int x = t1.at(0); List t2 = list.at(1);

Re: [Haskell-cafe] View patterns

2010-02-27 Thread Ozgur Akgun
A humble suggestion: Have a *lazy* to list method for your *lists, arrays, sets, etc.* and use the nice list-only version. On 27 February 2010 18:11, Andrew Coppin andrewcop...@btinternet.comwrote: One somewhat neat thing about Haskell is that you can say case list of [[x], [y,_],

Re: [Haskell-cafe] View patterns

2010-02-27 Thread Andrew Coppin
Ozgur Akgun wrote: A humble suggestion: Have a *lazy* to list method for your /lists, arrays, sets, etc./ and use the nice list-only version. Yeah, that works quite nicely. It won't work for arbitrarily complex structures, however. My main point was that if you make the constructors abstract

[Haskell-cafe] View patterns and warnings about overlapping or non-exhaustive patterns

2009-03-11 Thread Stephan Friedrichs
Hi, I'm working on a data structure that uses Data.Sequence a lot, so views are important and I tried to simplify my code using view patterns. The problem is, that I keep getting warnings about both overlapping and non-exhaustive pattern matches. A simple test case:

Re: [Haskell-cafe] View patterns and warnings about overlapping or non-exhaustive patterns

2009-03-11 Thread Svein Ove Aas
On Wed, Mar 11, 2009 at 5:22 PM, Stephan Friedrichs deduktionstheo...@web.de wrote: Hi, I'm working on a data structure that uses Data.Sequence a lot, so views are important and I tried to simplify my code using view patterns. The problem is, that I keep getting warnings about both

Re: [Haskell-cafe] View patterns and warnings about overlapping or non-exhaustive patterns

2009-03-11 Thread Neil Mitchell
Hi Stephan, I'm working on a data structure that uses Data.Sequence a lot, so views are important and I tried to simplify my code using view patterns. The problem is, that I keep getting warnings about both overlapping and non-exhaustive pattern matches. A simple test case:

Re: [Haskell-cafe] View patterns and warnings about overlapping or non-exhaustive patterns

2009-03-11 Thread Stephan Friedrichs
Svein Ove Aas wrote: [...] For the time being, it will *work*, you just won't get useful warnings. Hopefully it's going to be fixed for 10.2. Hmm I don't find #2395 anywhere on http://hackage.haskell.org/trac/ghc/milestone/6.10.2 :( //Stephan -- Früher hieß es ja: Ich denke, also bin

Re: [Haskell-cafe] view patterns

2008-11-08 Thread Dan Licata
Hi everyone, Yes, the current overlap checker thinks all view patterns are overlapped. The pattern overlap/exhaustiveness checker needs to be rewritten to account for GADTs and view patterns. You can use -fno-warn-overlapping-patterns to suppress these warning (along with any actual overlaps,

Re: [Haskell-cafe] view patterns

2008-11-05 Thread Cale Gibbard
2008/11/5 Cetin Sert [EMAIL PROTECTED]: interactive:1:4: Warning: Pattern match(es) are overlapped In the definition of `emp': emp ((has - True)) = ... emp ((has - False)) = ... Why do I get this error in ghc or when I try to compile a file

[Haskell-cafe] view patterns

2008-11-04 Thread Cetin Sert
let has [] = False; has _ = True -- this one is ok let empty list = case has list of True - False; False - True -- the following is problematic let emp (has - True) = False; emp (has - False) = True interactive:1:4: Warning: Pattern match(es) are overlapped In the definition of

Re: [Haskell-cafe] view patterns

2008-11-04 Thread Bulat Ziganshin
Hello Cetin, Wednesday, November 5, 2008, 8:34:14 AM, you wrote: let emp (has - True) = False; emp (has - False) = True     Warning: Pattern match(es) are overlapped proibably it's because GHC can't check view patterns for overlaps? -- Best regards, Bulat