I was wondering why Parsec's buildExpressionParser doesn't allow
prefix expressions to be handled recursively, e.g. given a prefix "!"
operation, it seems that "!!a" could parse without requiring
parentheses ("!(!a)"). Is there an easy way to extend it? (I have a
rich expression grammar I'd
Tom,
I was wondering whether there are any universities that teach about
Haskell type families or GADTs?
I'm quite sure at least GADTs are covered in INFOMAFP, the graduate
course on Advanced Functional Programming at UU:
http://www.cs.uu.nl/docs/vakken/afp
Cheers,
Stefan
__
On 12/01/09 17:38, Daniel Fischer wrote:
> Am Mittwoch 02 Dezember 2009 01:43:04 schrieb Jeremy Fitzhardinge:
>
>> On 12/01/09 15:12, Daniel Fischer wrote:
>>
>>> Am Dienstag 01 Dezember 2009 23:34:46 schrieb Jeremy Fitzhardinge:
>>>
I'm playing around with some types to represe
Tom Schrijvers wrote,
> I was wondering whether there are any universities that teach about Haskell
> type families or GADTs?
I do in my course "Language-based Software Safety" (both TFs and GADTs). It's
an advanced, research-oriented course for 4th year undergraduate and for
postgraduate stud
Am Mittwoch 02 Dezember 2009 03:28:04 schrieb Michael Mossey:
> Daniel Fischer wrote:
> >> getNumber :: String -> AssignedNumbers -> (Int,AssignedNumbers)
> >
> > Yeah, that screams State Monad.
>
> Hi, thanks for all the advice.
>
> I was hoping my AssignedNumbers "class" would be useful with many
Daniel Fischer wrote:
getNumber :: String -> AssignedNumbers -> (Int,AssignedNumbers)
Yeah, that screams State Monad.
Hi, thanks for all the advice.
I was hoping my AssignedNumbers "class" would be useful with many data
structures. In other words I would have
data State1 = State1 { a :
Am Mittwoch 02 Dezember 2009 02:01:29 schrieb Michael P Mossey:
> Perhaps someone could either (1) help me do what I'm trying to do, or (2)
> show me a better way.
>
> I have a problem that is very state-ful and I keep thinking of it as OO,
> which is driving me crazy. Haskell is several times hard
On Tue, Dec 1, 2009 at 9:01 PM, Robert Greayer wrote:
>
>
> On Tue, Dec 1, 2009 at 8:01 PM, Michael P Mossey
> wrote:
>
>> Perhaps someone could either (1) help me do what I'm trying to do, or (2)
>> show me a better way.
>>
>> I have a problem that is very state-ful and I keep thinking of it as
On Tue, Dec 1, 2009 at 8:01 PM, Michael P Mossey wrote:
> Perhaps someone could either (1) help me do what I'm trying to do, or (2)
> show me a better way.
>
> I have a problem that is very state-ful and I keep thinking of it as OO,
> which is driving me crazy. Haskell is several times harder to u
Thanks for the reply. Was there something specific you were referring to,
or just the idea that he wrote Haskore? Haskore is not very closely related
to what I'm trying to do. I believe he has a CSound back end for Haskore,
but it is in a rough state and not closely related to what I'm trying to
Am Mittwoch 02 Dezember 2009 01:43:04 schrieb Jeremy Fitzhardinge:
> On 12/01/09 15:12, Daniel Fischer wrote:
> > Am Dienstag 01 Dezember 2009 23:34:46 schrieb Jeremy Fitzhardinge:
> >> I'm playing around with some types to represent a game board (like Go,
> >> Chess, Scrabble, etc).
> >>
> >> I'm
Please check out Paul Hudak's page.
http://cs-www.cs.yale.edu/homes/hudak-paul/
On Tue, 01 Dec 2009 17:01:29 -0800, you wrote:
>Perhaps someone could either (1) help me do what I'm trying to do, or (2) show
>me a better way.
>
>I have a problem that is very state-ful and I keep thinking of it
I think these topics have been covered in
http://www.cas.mcmaster.ca/~kahl/FP/2009/
Christopher
On Tue, 1 Dec 2009 22:38:14 +0100 (CET)
Tom Schrijvers wrote:
> Hello Haskell Cafe,
>
> I was wondering whether there are any universities that teach about
> Haskell type families or GADTs?
>
> Th
Perhaps someone could either (1) help me do what I'm trying to do, or (2) show
me a better way.
I have a problem that is very state-ful and I keep thinking of it as OO, which
is driving me crazy. Haskell is several times harder to use than Python in this
instance, probably because I'm doing it
On Tue, Dec 1, 2009 at 4:21 PM, rodrigo.bonifacio
wrote:
> Thanks Luke.
>
> In fact I, will have different implementations of the Transformation type.
> Something like:
>
> data SelectScenarios = SelectScenarios {
>
> scIds :: [Id]
>
> }
What is this different type buying you? You can never "dow
newtype Transformation = Transformation {
(<+>) :: SPLModel -> InstanceModel -> InstanceModel
}
data SelectScenarios = SelectScenarios { scIds :: [Id] }
scenarioTransform scenario = Transformation $ \spl inst -> something
testScenario = SelectScenarios []
test = scenarioTransform testScena
On 12/01/09 15:12, Daniel Fischer wrote:
> Am Dienstag 01 Dezember 2009 23:34:46 schrieb Jeremy Fitzhardinge:
>
>> I'm playing around with some types to represent a game board (like Go,
>> Chess, Scrabble, etc).
>>
>> I'm using a type class to represent the basic Board interface, so I can
>> cha
Hi
On Tue, Dec 1, 2009 at 11:02 AM, Gour wrote:
> Iavor> In general, I don't think that having two similar libraries is a
> Iavor> huge problem. I tend to do this kind of hacking for fun, and I
> Iavor> really do not enjoy the competition that is being encouraged
> Iavor> when we try to select "
Am Dienstag 01 Dezember 2009 23:31:10 schrieb Ted Zlatanov:
> On Fri, 20 Nov 2009 15:30:49 -0600 Ted Zlatanov wrote:
>
> TZ> A nice property of inversion lists is that inverting them simply
> TZ> requires removing or adding the minimum possible value at the beginning
> TZ> of the list. A membersh
You probably don't want that minBound in the pattern, but rather as a
comparison in a guard.
Dan
On Tue, Dec 1, 2009 at 6:14 PM, Sjoerd Visscher wrote:
> Hi Ted,
>
> Some tips:
>> invlist_negate [] = [0]
>> invlist_negate (0:xs) = xs
>> invlist_negate xs = 0:xs
>
> You are doing this for generic
Thanks Luke.
In fact I, will have different implementations of the Transformation type. Something like:
data SelectScenarios = SelectScenarios {
scIds :: [Id]
}
And then I should be able to make SelectScenarios a kind of Transformation. So I think that I really need a class. What do you think abo
Hi Ted,
Some tips:
> invlist_negate [] = [0]
> invlist_negate (0:xs) = xs
> invlist_negate xs = 0:xs
You are doing this for generic Num instances, so 0 probably isn't the lower
bound. Haskell has another type class for this: Bounded. Then you can use
minBound instead of 0. Also the first line i
Am Dienstag 01 Dezember 2009 23:34:46 schrieb Jeremy Fitzhardinge:
> I'm playing around with some types to represent a game board (like Go,
> Chess, Scrabble, etc).
>
> I'm using a type class to represent the basic Board interface, so I can
> change the implementation freely:
>
> class Board b pos
On Fri, 27 Nov 2009, Henning Thielemann wrote:
On Fri, 27 Nov 2009, Roman Leshchinskiy wrote:
You can get more information (including the ugly tables) from my blog
http://unlines.wordpress.com/2009/11/27/noslow
Btw. storablevector supports 'zip' using
http://hackage.haskell.org/package/st
I'm playing around with some types to represent a game board (like Go,
Chess, Scrabble, etc).
I'm using a type class to represent the basic Board interface, so I can
change the implementation freely:
class Board b pos piece where
-- Update board with piece played at pos
play :: b pos piec
On Tue, Dec 01, 2009 at 05:11:42PM -0500, Sean McLaughlin wrote:
> The problem is that I explicitly didn't export 't' as an element of T
> (by not writing T(..)).
> Am I just misunderstanding how exports work? I couldn't figure out
> what the correct behavior should be by looking at the 98 report.
On Fri, 20 Nov 2009 15:30:49 -0600 Ted Zlatanov wrote:
TZ> A nice property of inversion lists is that inverting them simply
TZ> requires removing or adding the minimum possible value at the beginning
TZ> of the list. A membership test requires traversal but since the list is
TZ> sorted we know
It looks like it is specified and the intended behavior:
From the report, section 5.2:
An algebraic datatype T declared by a data or newtype declaration may
be named in one of three ways:
The form T names the type but not the constructors or field names. The
ability to export a type without
On Tue, Dec 1, 2009 at 3:11 PM, Sean McLaughlin wrote:
> Say I have the following module:
>
>
> module A
> ( T(T)
> , t
> , val
> )
> where
>
> data T = T { t :: Int }
>
> val :: T
> val = T 7
>
>
>
> When I use
Say I have the following module:
module A
( T(T)
, t
, val
)
where
data T = T { t :: Int }
val :: T
val = T 7
When I use A with the following imports, I don't expect this to work,
but it does:
import qua
On Tue, Dec 1, 2009 at 11:21 AM, David Menendez wrote:
> On Tue, Dec 1, 2009 at 1:00 PM, rodrigo.bonifacio
> wrote:
>> Dear all, I wrote the following types:
>>
>>> class Transformation t where
>>> (<+>) :: t -> SPLModel -> InstanceModel -> InstanceModel
>>
>>> data Configuration = forall t .
Hello Haskell Cafe,
I was wondering whether there are any universities that teach about
Haskell type families or GADTs?
Thanks,
Tom
--
Tom Schrijvers
Department of Computer Science
K.U. Leuven
Celestijnenlaan 200A
B-3001 Heverlee
Belgium
tel: +32 16 327544
e-mail: tom.schrijv...@cs.kuleuve
Am Dienstag 01 Dezember 2009 21:00:13 schrieb Daniel Fischer:
> Am Dienstag 01 Dezember 2009 20:21:27 schrieb Evan Laforge:
> > This is only peripherally related, but I also have a lot of list
> > functions that can possibly be an error, but usually processing can
> > continue. So they tend to ret
Am Dienstag 01 Dezember 2009 20:21:27 schrieb Evan Laforge:
> This is only peripherally related, but I also have a lot of list
> functions that can possibly be an error, but usually processing can
> continue. So they tend to return [Either Error Result]. I have
> another function thus:
>
> -- A f
This is only peripherally related, but I also have a lot of list
functions that can possibly be an error, but usually processing can
continue. So they tend to return [Either Error Result]. I have
another function thus:
-- A foldr version is not lazy enough and overflows the stack.
partition_eith
On Tue, 1 Dec 2009 10:06:14 -0800
>> "Iavor" == Iavor Diatchki wrote:
Iavor> I work with Trevor on the other Clutter binding. We did
Iavor> exchange a few messages with Matt, but we were not sure how to
Iavor> combine the two libraries because our approaches to writing the
Iavor> binding wer
On Tue, Dec 1, 2009 at 1:00 PM, rodrigo.bonifacio
wrote:
> Dear all, I wrote the following types:
>
>> class Transformation t where
>> (<+>) :: t -> SPLModel -> InstanceModel -> InstanceModel
>
>> data Configuration = forall t . Transformation t => Configuration
>> (FeatureExpression, [t])
>> t
Hi,
I work with Trevor on the other Clutter binding. We did exchange a
few messages with Matt, but we were not sure how to combine the two
libraries because our approaches to writing the binding were a bit
different. In general, I don't think that having two similar
libraries is a huge problem.
Dear all, I wrote the following types:
> class Transformation t where > (<+>) :: t -> SPLModel -> InstanceModel -> InstanceModel
> data Configuration = forall t . Transformation t => Configuration (FeatureExpression, [t])> type ConfigurationKnowledge = [Configuration]
I tried to write a functi
[Tom -- resending my reply---I forgot to post to the list.]
Neil, could you provide a reference (more on the practical side than
the theory side) for the Stochastic Process Algebras you mention? And
is there an embedding in Haskell? :)
Lee
Begin forwarded message:
From: Lee Pike
Date:
Hi,
I am playing around with KiCS and I have a strange problem, when I
evaluate a goal the variable bindings are not displayed, I see only
the value of the expression.
The same expression evaluated in pakcs (another curry interpreter)
displays the bindings correctly.
Is this a known bug?
I woul
On Tue, Dec 1, 2009 at 5:29 AM, Heinrich Apfelmus
wrote:
> Duncan Coutts wrote:
>> On Mon, 2009-11-30 at 06:08 +, Malcolm Wallace wrote:
>>> However, if you really want to terminate the stream at
>>> the first error, and to reflect this in the type, then I guess you can
>>> define your own lis
Hello,
thanks for all the advices; will have enough to read for the next
weeks and months! :-)
- Michael
--
Dipl.-Inf. Michael C. Lesniak
University of Kassel
Programming Languages / Methodologies Research Group
Department of Computer Science and Electrical Engineering
Wilhelmshöher Allee 73
3
I'd suggest the Prelude and Data.List
The code is very clear and thoroughly documented.
Knowing what is there will pay off again and again.
- Jason
On Nov 30, 2009, at 5:22 AM, Michael Lesniak wrote:
Hello,
In terms of
"to become a great programmer, you need to read great programs"[1]
w
Am Dienstag 01 Dezember 2009 10:32:24 schrieb newbie2009:
> leledumbo wrote:
> > None of them are legal, at least in my WinHugs they're not. What tools
> > are you using?
>
> 1) I am using GHCi. I put the following into a file named composition.hs
> and typed ":l composition.hs" in GHCi. I also did
On Dec 1, 2009, at 2:29 AM, Heinrich Apfelmus wrote:
> data Train a b = Wagon a (Train a b)
> | Loco b
Surely that should be:
data Train a b = Wagon a (Train a b)
| Caboose b
?
- MtnViewMark
Mark Lentczner
http://www.ozonehouse.com/mark/
m...@gl
Excerpts from Heinrich Apfelmus's message of Tue Dec 01 11:29:24 +0100 2009:
> Duncan Coutts wrote:
> > On Mon, 2009-11-30 at 06:08 +, Malcolm Wallace wrote:
> >> However, if you really want to terminate the stream at
> >> the first error, and to reflect this in the type, then I guess you can
On Mon, 2009-11-30 at 20:10 -0800, John Millikin wrote:
> On Mon, Nov 30, 2009 at 03:02, Duncan Coutts
> wrote:
> >> data ListThenError e a = Cons a (ListThenError e a)
> >> | Error e
> >>
> >> Of course this has the disadvantage that then your consumer must
> >> change to
Luke Palmer wrote:
> Hector Guilarte wrote:
>>
>> f:: [int] -> (a,[Int])
>> f randomList =
>> let (usedRandomNumber,newRandomList) = g randomList
>> in (usedRandomNumber,newRandomList)
>
> This pattern can be encapsulated in a monad:
>
> newtype RandM a = RandM { unRandM :: [Int] -> (a,[
Duncan Coutts wrote:
> On Mon, 2009-11-30 at 06:08 +, Malcolm Wallace wrote:
>> However, if you really want to terminate the stream at
>> the first error, and to reflect this in the type, then I guess you can
>> define your own list type:
>>
>> data ListThenError e a = Cons a (ListThenError
leledumbo wrote:
>
> None of them are legal, at least in my WinHugs they're not. What tools are
> you using?
>
1) I am using GHCi. I put the following into a file named composition.hs and
typed ":l composition.hs" in GHCi. I also did a ":browse Main"
2) Next, I installed WinHugs, and loaded th
> I dont understand why the above functions are legal, and what arguments
they need. Could you please
> give an example of how to invoke it?
Huh? None of them are legal, at least in my WinHugs they're not. What tools
are you using?
Some good reading I found:
http://learnyouahaskell.com/higher-or
On 1 Dec 2009, at 05:44, Tom Hawkins wrote:
I never considered running Atom generated functions in an asynchronous
loop until you posted your "Atomic Fibonacci Server" example
(http://leepike.wordpress.com/2009/05/05/an-atomic-fibonacci-server-exploring-the-atom-haskell-dsl/
).
I'm curio
I am a newbie. Consider this code:
square x = x * x
add3 x y z = x + y + z
leledumbo wrote:
>
>
> what about (square . add3) 1 2?
>
> It doesn't work since add3, when curried (arguments of square "blended"
> with add3's) with 1 argument becomes:
>
> add3 :: Num a => a -> a -> a
>
> whic
54 matches
Mail list logo