[Haskell-cafe] Re: Can Your Programming Language Do This?

2006-08-03 Thread Stephane Bortzmeyer
On Wed, Aug 02, 2006 at 11:14:30AM -0700, Jared Updike [EMAIL PROTECTED] wrote a message of 32 lines which said: (Sorry, couldn't find a place to comment on Joel's blog). http://discuss.joelonsoftware.com/?joel And I agree with Reilly Hayes: as I said in my first message, Joel tried to

[Haskell-cafe] Re: Can Your Programming Language Do This?

2006-08-03 Thread Stephane Bortzmeyer
On Wed, Aug 02, 2006 at 01:02:20PM -0700, Reilly Hayes [EMAIL PROTECTED] wrote a message of 133 lines which said: My guess is that most of the people who participate on this list are in some sort of research center, where the value of academic research is a given. As someone who does not

Re: [wxhaskell-users] FW: Reviving wxHaskell (was: Re: [Haskell-cafe] Troublecompiling wxhaskell)

2006-08-03 Thread Jeremy O'Donoghue
Hi all,As promised, an interim update on the wxHaskellsituation,alongwitharequest to Haskell-Cafe (someone there should know...) Firstly, thanks to all who have volunteered to help. Subject to final confirmations, I hope that we will have a core of around 5-6 people who are willing to 'own'

Re[2]: [wxhaskell-users] FW: Reviving wxHaskell (was: Re: [Haskell-cafe] Troublecompiling wxhaskell)

2006-08-03 Thread Bulat Ziganshin
Hello Jeremy, Thursday, August 3, 2006, 12:30:40 PM, you wrote: Several people have said that they would prefer a darcs repository me too Is there a formal mechanism to request hosting at darcs.haskell.org ? If so, whom do I ask? As a matter of interest, does it make sense to provide this

[Haskell-cafe] Variants of a recursive data structure

2006-08-03 Thread Klaus Ostermann
Hi all, I have a problem which is probably not a problem at all for Haskell experts, but I am struggling with it nevertheless. I want to model the following situation. I have ASTs for a language in two variatns: A simple form and a labelled form, e.g. data SimpleExp = Num Int | Add SimpleExp

Re: [Haskell-cafe] Variants of a recursive data structure

2006-08-03 Thread Christophe Poucet
Hello, I have had similar difficulties. My first approach (for my AST) was to use indirect composite. You seem to have the beginnings of that. However it would require a custom newtype for each AST form: data Exp e = Num Int | Add e e newtype SimpleExp = Exp SimpleExp newtype LabeledExp =

Re: [Haskell-cafe] Variants of a recursive data structure

2006-08-03 Thread Piotr Kalinowski
Hi, I'm no expert, but was wondering, why not make labelled AST a tree, which nodes are tupples holding a node of unlabeled tree and a label ? Regards, -- Intelligence is like a river: the deeper it is, the less noise it makes ___ Haskell-Cafe mailing

[Haskell-cafe] Edison StandardSet has inefficient function implementation

2006-08-03 Thread Ahn, Ki Yung
Edision does not yet have all the asymtotic description of its functions. I got the Edision 1.2 source and looked into the code whether the container implementations meet the expected asymtotic bounds. In the module Data.Coll.StandardSet which packages Data.Set, some functions which can be O(log

Re: [Haskell-cafe] Variants of a recursive data structure

2006-08-03 Thread Matthias Fischmann
On Thu, Aug 03, 2006 at 12:51:01PM +0200, Klaus Ostermann wrote: To: haskell-cafe@haskell.org From: Klaus Ostermann [EMAIL PROTECTED] Date: Thu, 3 Aug 2006 12:51:01 +0200 Subject: [Haskell-cafe] Variants of a recursive data structure Hi all, I have a problem which is probably not a

RE: [Haskell-cafe] Variants of a recursive data structure

2006-08-03 Thread Klaus Ostermann
Hi Christophe, you are right of course. It works with a custom newtype. I still wonder whether it is possible to do the same by reusing the Mu type constructor. It captures exactly the recursion structure you use for the LabeledExp type, hence it would be nice to reuse it here. Thanks for the

[Fwd: Re: [Haskell-cafe] Variants of a recursive data structure]

2006-08-03 Thread Conor McBride
Hi folks Sorry, meant to send this around, not just to Klaus Conor ---BeginMessage--- Hi Klaus Deep breath! Klaus Ostermann wrote: Hi all, I have a problem which is probably not a problem at all for Haskell experts, but I am struggling with it nevertheless. I want to model the following

Re: [Haskell-cafe] Variants of a recursive data structure

2006-08-03 Thread Piotr Kalinowski
On 03/08/06, Piotr Kalinowski [EMAIL PROTECTED] wrote: I'm no expert, but was wondering, why not make labelled AST a tree, which nodes are tupples holding a node of unlabeled tree and a label ? Ups, I'm stupid. I guess I should think more before typing anything next time... Regards, --

Re: [Haskell-cafe] Edison StandardSet has inefficient function implementation

2006-08-03 Thread Robert Dockins
On Aug 3, 2006, at 7:14 AM, Ahn, Ki Yung wrote: Edision does not yet have all the asymtotic description of its functions. Indeed. This is a big job which requires a lot of time, attention to detail, and a pretty good working understanding of lazy amortized analysis. Unfortunately I'm

Re: [Haskell-cafe] Variants of a recursive data structure

2006-08-03 Thread Bulat Ziganshin
Hello Klaus, Thursday, August 3, 2006, 2:51:01 PM, you wrote: data SimpleExp = Num Int | Add SimpleExp SimpleExp data LabelledExp = LNum Int String | LAdd LabelledExp LabelledExp String The icing on the cake would be if it would also be possible to have a function unlabel :: LabeledExp -

[Haskell-cafe] Bits and pieces needed to build a web server

2006-08-03 Thread Johan Tibell
I've got an idea for a web server model I would like to try and since I'm quite new to Haskell it would be great if someone could enumerate a couple of useful libraries to me. Here's what I need (I've put what I've found so far inside parenthesis): * Parsing of incoming HTTP request and

Re: [Haskell-cafe] Variants of a recursive data structure

2006-08-03 Thread Niklas Broberg
If you want the non-labelledness to be guaranteed by the type system, you could combine a GADT with some type level hackery. Note the flags to GHC - they're not that scary really. :-) In the following I've used the notion of type level booleans (TBool) to flag whether or not an expression could

Re: [Haskell-cafe] Variants of a recursive data structure

2006-08-03 Thread Niklas Broberg
Oops, sorry, I think I'm getting too addicted to flags. ;-) The module I wrote actually doesn't need neither overlapping nor undecidable instances, so just -fglasgow-exts will do just fine. /Niklas On 8/3/06, Niklas Broberg [EMAIL PROTECTED] wrote: If you want the non-labelledness to be

Re: [Haskell-cafe] Variants of a recursive data structure

2006-08-03 Thread Niklas Broberg
Oops again, not only am I addicted to flags, I also don't think before I write. Sorry for spamming like this. :-( The definition of the Or class I gave is incorrect. Of course it needs a functional dependency to work correctly, like this: class (TBool a, TBool b, TBool c) = Or a b c | a b - c

RE: [Haskell-cafe] Variants of a recursive data structure

2006-08-03 Thread Klaus Ostermann
Hi Niklas, thanks for your suggestion. Can you explain how your solution is better than the very simple one, i.e., data Exp e = Num Int | Add e e data Labeled = L String e newtype SimpleExp = Exp SimpleExp newtype LabeledExp = Labelled (Exp LabeledExp) Klaus -Original Message- From:

Re: [Haskell-cafe] Bits and pieces needed to build a web server

2006-08-03 Thread Jason Dagit
On 8/3/06, Johan Tibell [EMAIL PROTECTED] wrote: I've got an idea for a web server model I would like to try and since I'm quite new to Haskell it would be great if someone could enumerate a couple of useful libraries to me. Here's what I need (I've put what I've found so far inside

Re: [Haskell-cafe] Variants of a recursive data structure

2006-08-03 Thread Josef Svenningsson
Klaus, You've gotten many fine answers to your question. I have yet another one which is believe is closest to what you had in mind. The key to the solution is to add an extra type parameter to Labelled like so: data Labelled f a = L String (f a) Now you can use it to form new recursive type

[Haskell-cafe] Translating C to English Using Haskell

2006-08-03 Thread Shannon -jj Behrens
I've written a two-part series for Linux Journal called Translating C to English Using Haskell. Here are links to the two parts: http://www.linuxjournal.com/article/9096 http://www.linuxjournal.com/article/9242 The catchline is: Write a program in Haskell that translates C type declarations

[Haskell-cafe] Filtering a big list into the IO monad

2006-08-03 Thread Gabriel Sztorc
Hello, I want to filter a list with a predicate that returns a IO value, something that filterM is supposed to do. The problem is, filterM overflows the stack for really big lists and I couldn't come up with a simple replacement for filterM that would work for lists of any size (the truth

Re: [Haskell-cafe] Filtering a big list into the IO monad

2006-08-03 Thread Chris Kuklewicz
Gabriel Sztorc wrote: Hello, I want to filter a list with a predicate that returns a IO value, something that filterM is supposed to do. The problem is, filterM overflows the stack for really big lists and I couldn't come up with a simple replacement for filterM that would work for lists of

Re: [Haskell-cafe] Variants of a recursive data structure

2006-08-03 Thread Niklas Broberg
On 8/3/06, Klaus Ostermann [EMAIL PROTECTED] wrote: thanks for your suggestion. Can you explain how your solution is better than the very simple one, i.e., data Exp e = Num Int | Add e e data Labeled = L String e newtype SimpleExp = Exp SimpleExp newtype LabeledExp = Labelled (Exp LabeledExp)

[Haskell-cafe] C++ virtual methods (was Reviving wxHaskell)

2006-08-03 Thread Donn Cave
... In the longer term, we could look at: ... * Subclassing of widgets in Haskell ( i.e. allow C++ virtual methods to be redefined in Haskell) - moderately hard Has that been done successfully elsewhere? What would the Haskell API look like - record of method functions? (If the question

Re: Re: [Haskell-cafe] Variants of a recursive data structure

2006-08-03 Thread Nicolas Frisby
Howdy. I've been working with this stuff pretty intimately in the last few days; here's what I came up with. It's similar to Josef's except let's us have many labels. Type-level currying requires newtypes because any appearance of a type synonym must be fulled applied. newtypes relax that

Re: [Haskell-cafe] Filtering a big list into the IO monad

2006-08-03 Thread Udo Stenzel
Gabriel Sztorc wrote: I want to filter a list with a predicate that returns a IO value, something that filterM is supposed to do. The problem is, filterM overflows the stack for really big lists Are you sure it's filterM's fault? Can you post the code in question? Stack overflows are

Re: [Haskell-cafe] Filtering a big list into the IO monad

2006-08-03 Thread Spencer Janssen
This message is literate Haskell source. import System.IO.Unsafe (unsafeInterleaveIO) First off, let's look at the code for filterM: filterM :: (Monad m) = (a - m Bool) - [a] - m [a] filterM _ [] = return [] filterM p (x:xs) = do flg - p x ys - filterM p xs return

[Haskell-cafe] Code review: initial factoring for sequences and other structures

2006-08-03 Thread Brian Hulley
Hi - I've started work on an initial factoring of sequence ops into classes, and already I've run into some major design issues which stand like a mountain in the way of progress. The classes are below: -- all code below standard BSD3 licence :-) module Duma.Data.Class.Foldable (

Re: [Haskell-cafe] Code review: initial factoring for sequences andother structures

2006-08-03 Thread Brian Hulley
Brian Hulley wrote: Hi - I've started work on an initial factoring of sequence ops into [snip] class Foldable c a | c - a where foldR :: (a - b - b) - b - c - b [snip] There is a general problem that when the element type needs to be specified along with the type of the overall

Re: [Haskell-cafe] Variants of a recursive data structure

2006-08-03 Thread paul
On Thu, Aug 03, 2006 at 05:25:07PM +0200, Klaus Ostermann wrote: Hi Niklas, thanks for your suggestion. Can you explain how your solution is better than the very simple one, i.e., data Exp e = Num Int | Add e e data Labeled = L String e newtype SimpleExp = Exp SimpleExp newtype