News aggregator

haskell.org slow

haskell-cafe - Fri, 01/16/2015 - 6:48pm
Anyone know when haskell.org <http://haskell.org/> will be usable again? Page loads take 20+ seconds. Info at https://status.haskell.org <https://status.haskell.org/> indicates there's a DB problem, but there's no ETA and performance has been bad for over 10 days. _______________________________________________ Haskell-Cafe mailing list Haskell-Cafe< at >haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Categories: Offsite Discussion

Is this warning really a good idea?

Haskell on Reddit - Fri, 01/16/2015 - 2:17pm

I have the following line of code

mapM_ (\uid -> printEmailAddress connection uid) (reverse messageList)

The compiler gives me the following warning

Warning: Avoid lambda Found: \ uid -> printEmailAddress connection uid Why not: printEmailAddress connection

Now, I understand the warning completely from a technical perspective but it seems to me that the statement becomes much less clear if the parameter is removed so is this really a good thing to warn about? If so, why?

submitted by dhjdhj
[link] [42 comments]
Categories: Incoming News

Shower thought: would an efficient supercompiler make ad-hoc static type systems possible in a dynamically typed language?

Haskell on Reddit - Fri, 01/16/2015 - 2:15pm

I've been thinking, suppose we had an efficient supercompiler in a dynamic language (say, an untyped dialect of Haskell). Then, we could simulate types with tagged values.

TypeError = symbol Correct = symbol Int = symbol Double = symbol check TypeError expr = TypeError check Correct expr = expr tagInt num = (Int, num) isInt (Int,_) = Correct isInt _ = TypeError tagDouble num = (Double, num) isDouble (Double,_) = Correct isDouble _ = TypeError let addDoubles x y = check (isDouble x) (check (isDouble y) (x + y)) let program x = addDoubles (tagDouble 3.0) (tagInt x)

If this program was fully supercompiled, it would in inevitably result in:

program x = TypeError

So we know our program won't typecheck when it supercompiles to TypeError! But if you supercompile this:

program x = add (tagDouble 3.0) (tagDouble x)

This would be supercompiled to:

program x = 3.0 + x

That is, we got rid of the runtime checking, like a static type system should do. Of course, you would need a few ad-hoc syntax sugars to simulate Haskell's syntax, but, functionally speaking, am I correct in thinking supercompilation would allow ad-hoc type systems?

Edit: code

submitted by SrPeixinho
[link] [6 comments]
Categories: Incoming News

Haskell Platform 2.0 comes with empty /bin

Haskell on Reddit - Fri, 01/16/2015 - 11:41am

I don't understand why I followed a simple GUI install and yet GHC 7.8 wasn't installed. I have already uninstall-hs --remove all from my computer. Attempting to start from scratch. I'll try to download the .tar.bz file again but when building it the gwd-pwd executable binary file WON'T EXECUTE. So I can't even ./configure . Anyone else run into this or know of a way to work around this?

submitted by dgomez1092
[link] [3 comments]
Categories: Incoming News

Two research assistantships in model-driven engineeringand semantic technologies, University of Oxford

General haskell list - Fri, 01/16/2015 - 8:01am
We have two positions open in the Programming Languages and Software Engineering Research Group, for research assistants (postdocs) in model-driven engineering and semantic technologies. The positions are associated with the EU-funded “ALIGNED: Quality-Centric Software and Data Engineering” project, working with Jim Davies and Jeremy Gibbons. The primary selection criteria are strong design and development skills in object-oriented and functional programming, representation and manipulation of semi-structured data, and model transformation, together with a proven track record of relevant publications. (Although the posts won't be primarily focussed on FP, we would welcome applications from FPers interested in MDE.) Applicants should have a PhD in Computer Science. Full details are at http://www.cs.ox.ac.uk/news/869-full.html and the closing date is 12 noon GMT on 9th February. Please contact me if you have any questions about the positions, and please distribute this notice to anyone who may be in
Categories: Incoming News

Undefined symbols when trying to use SDL-mixer

haskell-cafe - Thu, 01/15/2015 - 10:36pm
I'm trying to use SDL-mixer v0.6.1. When I add a dependency to my cabal file and run cabal repl I get the following error: Loading package SDL-mixer-0.6.1 ... <command line>: can't load .so/.DLL for: /home/prf/haskell/link-problem/.cabal-sandbox/lib/x86_64-linux-ghc-7.8.3/SDL-mi xer-0.6.1/libHSSDL-mixer-0.6.1-ghc7.8.3.so (/home/prf/haskell/link-problem/.cab al-sandbox/lib/x86_64-linux-ghc-7.8.3/SDL-mixer-0.6.1/libHSSDL-mixer-0.6.1-ghc7 .8.3.so: undefined symbol: Mix_FreeChunk) I can see these undefined symbols when I run: nm -D SDL-mixer-0.6.1/libHSSDL-mixer-0.6.1-ghc7.8.3.so | grep Free U Mix_FreeChunk U Mix_FreeMusic Running ldd on this file and grepping for SDL gives libHSSDL-0.6.5-ghc7.8.3.so => /home/prf/haskell/link-problem/.cabal-sandbox/lib /x86_64-linux-ghc-7.8.3/SDL-0.6.5/libHSSDL-0.6.5-ghc7.8.3.so (0x00007fb20b30600 0) libSDL-1.2.so.0 => /usr/lib64/libSDL-1.2.so.0 (0x00007fb20a232000) It seems like a dependency to /usr/lib64/libSDL_mixer.so is missing. Line 1815 of SDL-mixer-0.6.1/configure c
Categories: Offsite Discussion

Mathematics of Program Construction (MPC 2015): finalcall for papers

General haskell list - Thu, 01/15/2015 - 3:32pm
Apologies for multiple copies. FINAL CALL FOR PAPERS 12th International Conference on Mathematics of Program Construction, MPC 2015 Königswinter, Germany, 29 June - 1 July 2015 http://www.cs.ox.ac.uk/conferences/MPC2015/ BACKGROUND The MPC conferences aim to promote the development of mathematical principles and techniques that are demonstrably practical and effective in the process of constructing computer programs, broadly interpreted. The 2015 MPC conference will be held in Königswinter, Germany, from 29th June to 1st July 2015. The previous conferences were held in Twente, The Netherlands (1989), Oxford, UK (1992), Kloster Irsee, Germany (1995), Marstrand, Sweden (1998), Ponte de Lima, Portugal (2000), Dagstuhl, Germany (2002), Stirling, UK (2004, colocated with AMAST), Kuressaare, Estonia (2006, colocated with AMAST), Marseille, France (2008), Québec City, Canada (2010, colocated with AMAST), and Madrid, Spain (2012). TOPICS Papers are solicited on mathematical methods and tools put to use i
Categories: Incoming News

I wish that `f` = flip f

Haskell on Reddit - Thu, 01/15/2015 - 3:26pm

A function f :: A -> B -> C can be applied in infix form where:

a `f` b <=> f a b

I think this is a mistake and that it should instead have been:

a `f` b <=> f b a

sepBy (from Parsec) is a typical example of the problem. In Haskell we can either write:

p `sepBy` (symbol ",")

or:

sepBy p (symbol ",")

But the second form looks strange and swapping the arguments would make the infix form look strange instead.

A similar example is asTypeOf. Consider:

asTypeOf 1 int

It looks wrong because, like sepBy, it is made to appear natural when used in infix form:

1 `asTypeOf` int

If `f` = flip f this would not have been a problem. This would also allow the familiar object-method syntax (for those who like that):

[1,2,3] `map` f <=> map f [1,2,3] 'A' replicate 5 <=> replicate 5 'A' m `lookup` 'b' <=> lookup 'b' m 5 `mod` 2 <=> mod 2 5

Note that mod 2 would be a modulo 2 function, which IMO is more intuitive than a function taking 2 modulo something.

EDIT:

My wish was that infix function application should flip it's arguments to rid strange things like this:

subtract 2 5 == 3 -- good 5 `subtract` 2 == -3 -- what?

This discussion has given me insights to change my mind on this. Here is why.

First, some really good counter examples came up. Functions like zip and mappend works fine as things are now:

mappend [1,2] [3,4] == [1,2,3,4] == [1,2] `mappend` [3,4]

Flipping the arguments for the infix form would make it awkward.

Then it was pointed out that

(&) = flip ($)

can be used to "infix" a function to it's flipped form, so that

5 &subtract 2 == 3

as expected. (Compared to the infix form)

Also & is to be added to Data.Function (to my understanding) so will became standardized.

This means we can both eat the cake and have it too!

Still, I maintain that some functions such as mod and sepBy have their arguments in wrong order. Even more so when & comes along. I agree with fridofrido that argument order should by convention be driven by the pattern of partial application.

submitted by togrof
[link] [79 comments]
Categories: Incoming News

1/15/2015 3:46:00 PM

haskell-cafe - Thu, 01/15/2015 - 5:46am
http://www.1367.co.nz/basjaupc/pebrbhpjthzcrumhnityftkmrmxbjau.myfduxbsyxonphgllsqjbht Diony Rosa 1/15/2015 3:46:00 PM_______________________________________________ Haskell-Cafe mailing list Haskell-Cafe< at >haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Categories: Offsite Discussion

knupfer/haskell-emacs

del.icio.us/haskell - Thu, 01/15/2015 - 1:34am
Categories: Offsite Blogs

Functional Jobs: Functional Software Developer at Moixa Technology (Full-time)

Planet Haskell - Thu, 01/15/2015 - 1:07am

Green energy / IoT startup Moixa Technology is seeking to add to our software team.

We're a small team dedicated to developing technology that enables a radical change in the way that energy is used in the home. We are just ramping up to deliver a project (working with large energy companies) demonstrating how communities can use the Maslow system across a group of homes to share energy in that community. We will need to deploy software that addresses some challenging problems to make this possible.

The code that we develop is built around providing services based on the hardware systems that we are deploying and so needs to work with the constraints and characteristics of the hardware & low level firmware we have built.

We're looking for individuals with generalist approach that are willing and and able to participate in all aspect of design, implementation and operation of our platform. The candidate must be happy in a small team, and also able to work autonomously. We are expanding as we ramp up to deliver the next generation of control software to our increasing number of deployed system. This is an exciting moment for the company.

Tasks:

  • Design & implemetation of all parts of our software stack (web frontend & backend, data analytics, high-level code on IoT devices)
  • Operations support (expected <20% of time)

Our current stack involves:

  • Scala (Akka, Play) / ClojureScript / Haskell
  • Postgres, neo4j
  • Raspberry PI / Arch Linux
  • PIC32 microcontroller / C

Skills and Requirements:

  • Experience in one or more functional languages
  • Familiarity with at least one database paradigm
  • Linux scripting and operation

Advantages:

  • Familiarity with (strongly) typed functional languages (Haskell/ML/Scala)
  • Embedded programming experience
  • Experience in data analytics (Spark or similiar)
  • Experience in IoT development
  • Open Source contributions

Moixa technology is based in central London (Primrose Hill), Salary depending on experience + performance based share options.

Get information on how to apply for this position.

Categories: Offsite Blogs