News aggregator

Munich Haskell Meeting

haskell-cafe - Mon, 07/28/2014 - 9:10pm
Dear all, on Wednesday, 30th of July, once again our monthly Haskell Meeting takes place. We meet at 19h30 at Max-Emanuel-Brauerei in Munich. If you plan to join, please go here to find the details and don't forget to click the button: Have a nice evening, Heinrich
Categories: Offsite Discussion

RV 2014: Call for Participation

General haskell list - Mon, 07/28/2014 - 8:16pm
****************************************************************** CALL FOR PARTICIPATION RV 2014: 14th International Conference on Runtime Verification September 22 - September 25, 2014, Toronto, Canada ****************************************************************** ***************** OVERVIEW ***************** Runtime verification is concerned with monitoring and analysis of software and hardware system executions. Runtime verification techniques are important for system correctness, reliability, and robustness; they are complementary to conventional testing, and more practical than exhaustive formal verification. Runtime verification can be used prior to deployment, for testing, verification, and debugging purposes, and after deployment for ensuring reliability, safety, and security and for providing fault containment and recovery as well as online system repair. Topics of interest to the conference include: - specification languages - specification mining - pr
Categories: Incoming News

Looking for improvements/suggestions for a simple Tictactoe game!

Haskell on Reddit - Mon, 07/28/2014 - 6:00pm

I am looking for any and all feedback on improving the organization or style of the code to make it more idiomatic (code).

The things I'm considering doing are

  • Making a dedicated Index type (instead of using Word) to constrain indices to only 3 values

  • Making Board a newtype

  • Removing StateT (I'm not exactly sure what benefits it brings other than making it explicit that there is state)

but I'm not sure if these are idiomatic either.

One question I have is why don't libraries use Word instead of Int when representing size or indices?

submitted by precalc
[link] [5 comments]
Categories: Incoming News

New Functional Programming Job Opportunities

haskell-cafe - Mon, 07/28/2014 - 5:00pm
Here are some functional programming job opportunities that were posted recently: Senior Haskell Developer at Plow Technologies CTO / Tech Co-Founder at Capital Match Cheers, Sean Murphy
Categories: Offsite Discussion

Hac φ (Philadelphia): Oct 17-19, 2014

haskell-cafe - Mon, 07/28/2014 - 3:27pm
Hac φ, the annual Haskell Hackathon held in Philadelphia, PA, USA, will take place Fri-Sun, Oct. 17-19, 2014. Registration is free, and all levels of Haskellers are welcome. Come join us for a weekend of programming and camaraderie. Bring your own project to work on or organize on the wiki page to join another's project. All the info, including registration link, is here: Professional Haskellers: if you work for an organization that might want to help sponsor this event, please email me. Note: This event has previously taken place during summer, but will be in October this year. Hope to see you in Philly this fall! Richard_______________________________________________ Haskell-Cafe mailing list Haskell-Cafe< at >
Categories: Offsite Discussion

If-Then-Else Type Family

Haskell on Reddit - Mon, 07/28/2014 - 1:44pm

While designing a REST API client, I hit a problem where the data types I'm serializing to/from JSON differ only in a few fields for GET and POST requests. Rather than write two separate instances, I was wondering about using type families:

{-#LANGUAGE DataKinds #-} {-#LANGUAGE TypeFamilies #-} {-#LANGUAGE TypeOperators #-} module Main where data Method = GET | POST type family (m :: Method) := (n :: Method) :: Bool type instance GET := GET = True type instance GET := POST = False type instance POST := GET = False type instance POST := POST = True type family (b :: Bool) :? c :: * type instance True :? (x, y) = x type instance False :? (x, y) = y type x :. y = (x, y) data Resource (m :: Method) = Resource { param1 :: GET := m :? Int :. () , param2 :: POST := m :? Int :. () , param3 :: Int }

This is still very much a sketch, but I was wondering if there are any other examples of if-then-else computations at the type level (or if this is even a good idea at all).

EDIT: Actually, I'm not sure how to get this to work. When I try

get :: Resource GET get = Resource 1 () 0

I get the following type error:

Couldn't match type `()' with `(('POST := 'GET) :? Int, ())' Expected type: (('POST := 'GET) :? Int) :. () Actual type: () In the second argument of `Resource', namely `()' In the expression: Resource 1 () 0 In an equation for `get': get = Resource 1 () 0

EDIT: Fixed with help from jozefg:

submitted by markandrus
[link] [9 comments]
Categories: Incoming News

Looking for Haskell Summer Course

Haskell on Reddit - Mon, 07/28/2014 - 12:30pm

I heard about a online summer school for the haskell programming language. AFAIK it is free. I just can't remember neither the name of the lecturer nor the course.

Does anybody know such a online cours/summer school for haskell this year or is able to give some hints?

Thanks in advance

Edit: Solved!

submitted by haskellsummer
[link] [2 comments]
Categories: Incoming News

What would your ideal Monad combiner API look like?

Haskell on Reddit - Mon, 07/28/2014 - 8:58am

Both mtl and extensible-effects try to provide a simple, type-safe, performant way of combining two Monads into 1 to get the effects of both, but most would a agree that they fall flat in one area or another. My question is: What would the API of the perfect solution look like if issues like performance were ignored?

submitted by sccrstud92
[link] [17 comments]
Categories: Incoming News

Fusion of list functions

libraries list - Mon, 07/28/2014 - 8:03am
David, and other Haskell library folk You’ve been doing lots of work on making more Prelude functions fusible – thank you! This is really a library question, so I have not been following the details of the discussion, but I hope Edward and the Core Libraries Committee have been doing so; I’m cc’ing them. I’m more than happy to help with any questions if you all get stuck. Don’t forget to update the user manual to say which functions are good producers/consumers. Actually, it might be better instead to state this in their Haddock comments, and remove or shrink this section of the user manual instead. It’s very hard to keep it up to date. I think it pre-dates Haddock. Many thanks. Simon From: Libraries [mailto:libraries-bounces< at >] On Behalf Of Michael Snoyman Sent: 27 July 2014 06:08 To: Carter Schonwald Cc: Haskell Libraries Subject: Re: Am I missing something about unfo
Categories: Offsite Discussion

Problem with existential type and instance.

haskell-cafe - Mon, 07/28/2014 - 6:46am
Hi, For code like below, how to make it compilable? data EventHandlers = forall m. MonadIO m => EventHandlers { onDeleteWindow :: Maybe (m ()) } instance Default EventHandlers where def = EventHandlers Nothing
Categories: Offsite Discussion

Building list of functions in parallel.

Haskell on Reddit - Mon, 07/28/2014 - 2:54am

How do I go about building a list of functions in parallel? I have a bunch of entities that create a list of changes to be applied in sequence, but I want to generate the functions in parallel. Is there any easy way to force evaluation of all arguments required for a function? Does this have to be done on a case by case basis? What does a bang do in the following definition:

data Foo a b = Foo !(a -> b) submitted by Agitates
[link] [5 comments]
Categories: Incoming News

High(low) performance recursion

Haskell on Reddit - Mon, 07/28/2014 - 1:41am

I have this recursive formula (Panjer recursion) that I need to implement efficiently in order to numerically approximate the probability distribution of the sum of iid random variables (I will now use Latex notation) :

s{r}=(1-p)\cdot\sum{r}{i=1}g{i}\cdot s{r-i}

I have implemented it in Haskell and Matlab but in both cases the code is too slow for (not so much) high 'r' due to the recursive nature of the problem.

I know that expressing recursive calls in terms of \textit{map} and \textit{fold} function would speed up the computation and make it even faster than a loop but I am stuck and I can not do better than this:

prob :: Int -> Float -> [Float] -> Float

prob r p gs = (1-p) * ( foldr (+) 0 [ g * ( prob (r-b) p gs) | (g,b) <- zip gs [1..r] ] )

Would you know how to improve it?

submitted by ceikit
[link] [26 comments]
Categories: Incoming News

PPDP 2014: Program and 2nd Call for Participation

General haskell list - Sun, 07/27/2014 - 1:59pm
====================================================================== CALL FOR PARTICIPATION: PPDP 2014 16th International Symposium on Principles and Practice of Declarative Programming Canterbury, Kent, September 8-10, 2014 co-located with LOPSTR 2014 24th International Symposium on Logic-Based Program Synthesis and Transformation Canterbury, Kent, September 9-11, 2014 ====================================================================== Two weeks left for early registration (until August 8): A significant discount is available when registering to both events, especially as a student (until August 8). PPDP 2014 features * an invited talk by Roberto Giacobazzi, shared with LOPSTR: "Obscuring Code -- Unveiling and Veiling Information in Programs" * no fewer than 4 distilled tuto
Categories: Incoming News

Exception in simple Pipes example

Haskell on Reddit - Sun, 07/27/2014 - 12:03pm

So I took the simple example of using Pipes to read from reddit (see here) and tried to turn it into a stand alone Producer.

It works but instead of just stopping when there's no more data coming in, it throws an exception. What am I missing?

{-# LANGUAGE OverloadedStrings #-} module Main where import Pipes as P import Pipes.HTTP import Pipes.ByteString as PB downloadRedditExample :: IO (Producer ByteString IO ()) downloadRedditExample = do req <- parseUrl "" withManager defaultManagerSettings $ \m -> withHTTP req m (return . responseBody) main :: IO () main = do redditPipe <- downloadRedditExample runEffect $ redditPipe >-> PB.stdout

Also on lpaste at

submitted by hiptobecubic
[link] [8 comments]
Categories: Incoming News