News aggregator

F# compiler, library and tools now open for community contribution

Lambda the Ultimate - Mon, 04/07/2014 - 10:22am

F# is the first MS language to go open source. The F# team is now going further into the Open World to allow community contributions to the core language, library and tool set. This means the F# team will now take pull requests :)

From a recent blog post on the topic:

"Prior to today (April 3, 2014), contributions were not accepted to the core implementation of the F# language. From today, we are enabling the community to contribute to the F# language, library and tools, and to the Visual F# Tools themselves, while maintaining the integrity and unity of the F# language itself.

In more detail:
•Contributions can now be made to the core F# compiler, library and tools implementation.
•Proposed changes will be rigorously moderated by ourselves and other community contributors from Microsoft Research and the F# community.
•The full tests for the F# compiler and library are now available.
•In time, the full source code and test suite for the Visual F# Tools will be made available."

Categories: Offsite Discussion

Functional Software Engineering Posts

Haskell on Reddit - Mon, 04/07/2014 - 3:42am

Symphonic Solutions Ltd ( is a disruptive technology company that leverages functional paradigms to enable engineered innovation.

In real terms, we build high performance, low latency platforms that integrate to a plethora of third party API’s and apply intelligent manipulation and analysis to the data via a DSL. We help turn ‘Big Data’ into ‘Useful Information’. We also don’t use Hadoop - which is nice.

We’re looking for software engineers who understand the functional domain extremely well. Ideally you will be a polyglot software engineer with skills and at least twelve months (commercial) experience in Scala (with with Akka) || Clojure || Haskell || NodeJS. We run all of these in production so it’s important you understand the difference between experimentation and production quality code. You should also be able to at least read one of either Python, Bash or C. We don’t allow Ruby anywhere on our platform so you should be comfortable about that. We’re looking for people who want to live the functional dream, not people who think it’s a ‘nice to have’ on their C.V please.

You should understand the sympathetic orchestration of human, software, operating system and hardware. You should also be able to translate complex functional requirements into simple, well composed programs which work in concert to produce the desired result. Experience in working within a micro-services architecture will be looked on very favourably.

We are flexible on working locations, including home working, with a London office based near Edgware Road station. During the early phases of engineering design some time in the office will be a necessity however and you should be comfortable about that. You should be able to work independently and within a wider team as well as manage your time such that your responsibilities in each sprint are delivered to a high quality and in a timely manner. You’ll be expected and empowered to make software design choices specific to your responsibilities in concert with the platform engineering team.

You should be happy to work within an agile project management framework which supports Kanban. You should be familiar with working with JIRA, Confluence and Git. You will be expected to produce documentation around your sprint responsibilities which deliver a high level of knowledge retention and transfer.

Your programs will be run on SmartOS platforms and so you should be able to build technology agnostic programs. In simple terms you should be happy not to rely on any operating system specific functionality in order to write your programs. You will be trained in technologies such as DTrace to better aid your diagnostic efforts. You will be provided with local build environments based off Vagrant which you should be happy to manage yourself though training and support from engineering will be available at all times.

If this interests you, in the first instance, please answer the following questions :

Question 1 Explain the relationship between the human and the machine. Describe the relationship in as much detail as you feel comfortable with.

Question 2 Explain tail recursion to a 5 year old.

Question 3 Explain how you would manage state in a functional manner to a 5 year old.

We expect that you have public GitHub/Bitbucket repo’s sharing your work and/or research with functional languages and programs so please also send your GitHub/Bitbucket handle with your answers.Please send your answers and whatever you have of a C.V. to

submitted by khushildep
[link] [21 comments]
Categories: Incoming News

BudHac 2014

Haskell on Reddit - Mon, 04/07/2014 - 3:00am
Categories: Incoming News

The ghc-vis User Guide - Sun, 04/06/2014 - 3:53pm
Categories: Offsite Blogs

BayHac '14 Sign-Up and List of Classes

Haskell on Reddit - Sun, 04/06/2014 - 12:53pm

Sign-up form:

We are holding the following classes at BayHac '14:

  • A Tutorial on Free Monads by Dan Piponi
  • Yesod: Up and Running by Dan Burton
  • Haskell for Scala Programmers by Runar Bjarnason
  • Programming with Pipes by Gabriel Gonzalez
  • Beginning Haskell by Bob Ippolito
  • Programming with Vinyl by Jonathan Sterling
  • GHC iOS: Up and Running by Luke Iannini
  • Pandoc by John MacFarlane
  • Functional Reactive Programming with Elm by Evan Czaplicki
  • Lens: Inside and Out by Shachaf Ben-Kiki
  • Denotational Design by Conal Elliott
  • Haste: Front End Web Development with Haskell by Lars Kuhtz
  • Conquering Cabal by Jonathan Fischoff
  • From Prolog to Hindley-Milner by Tikhon Jelvis
  • Getting Stuff Done with Haskell by Greg Weber

In addition, there will be short demos and experience reports:

  • Haskell at IMVU by Andy Friesen
  • Haskell at Aleph Cloud by Jeff Polakow
  • Haskell at Docmunch by Greg Weber
  • Haskell at Pingwell by Tim Sears
  • demo by Luke Iannini
  • Elm demo by Evan Czaplicki

We will also have lightning talks open to all attendees and, of course, plenty of time to hack.

Please, if you plan on coming any of the days between May 16-18, fill out the sign-up form. Here it is again:

More details:

I would quickly like to thank IMVU and Google for sponsoring BayHac this year.

Happy Hacking, Jonathan

submitted by jfischoff
[link] [11 comments]
Categories: Incoming News

Haskell usage in the real world...

Haskell on Reddit - Sat, 04/05/2014 - 10:06pm

Hey guys, I've just discovered Haskell, and was wondering if anybody knew of any instances of Haskell being used in the real world? I've read that it's used widely in high frequency trading, but haven't heard much about anything else. Does anyone have any insight into this? Thank you.

submitted by fata5ian
[link] [43 comments]
Categories: Incoming News

Douglas M. Auclair (geophf): 'E' is for ... well, ... e

Planet Haskell - Sat, 04/05/2014 - 9:55pm
'E' is for ... wait for it: ... e.

The number e is this neat little number that shows us that mathematics isn't for just us pencil-necked geeks with our pocket protectors.

Okay. Seriously. Did they have to go there in WarGames with the whole "Mr. Potato-Head! Mr. Potato-head!" Seriously? We, the geeks of the world, are not all like that.



Anyway, I digress.

(Do you think I love digressing? No, not at all, it's just who I am and what I do. That's how I'm rollin' wid it, baybee!)

Okay, so, fer realz, yo: the number e. You can't point to it on a number line ...

Unless you go:

| --- | ---- | ---- |
0    1      2    e3

And there's your e ... kinda, sorta, I just pointed to it.

But 'e' is eminently useful, as it shows up in calculus, particularly for the 'natural' logarithm.

But why? Why do we want to scale along the number e?


Did I get your attention?

Bernoulli came along one day when someone asked him, 'Hey, I know I get money back when I put money into a bank that pays interest annually, but how much, if any, more will I get back if they compound more often?"

Money, compounded continuously falls along the exponent of the number, so, to compute your mortgage or your interest in your savings, you use the 'Pert' formula.

And, yes, you look lovely! in that dress, you Pert thing!

'Pert' is this:

P = principal (what you put in)
e = e (duh!)
rt is 'rate times time (in years)'

So, really it's:


Or, written on your calculator or on your computer in a spreadsheet:

P * exp(r * t)

So, if you put in $1,000 for a year in a bank paying 5.25% interest

(Don't laugh, that's what I did when I was a wee one, wet behind the ears. Remember when savings account used to payout at that rate? No, you don't, because you weren't born then)

(But I digress)

Then you simply use your Pert formula and come to find that you have:


If the bank had paid interest only once per year, you would've only had

$1052.50 (of course).

A buck-fifty. Big whoop.

The big whoop is this. Do that for 20 years, 30 years, 40 years ...

You'll start to see a huge difference between compounding simply and compounding continuously.

That's your savings. The banks are doing the same thing with you.

You have credit cards? You have a mortgage?

A general I knew used to say, nearly every day: "30-year mortgages are killing our nation's finances!"

Pay off your debts. The longer you take to pay, the more that little number e is going to crush you under its accumulated weight.

And the reverse is true, the bit extra you pay now against the principal you owe? It translates into a factor of five or ten or twenty-fold, depending on the interest rate and the time of the loan.

Knowing a little bit of math can actually help you decide things more prudently for the long term.
Categories: Offsite Blogs

Why does map even exists?

Haskell on Reddit - Sat, 04/05/2014 - 4:31pm

I was wondering. Considering that map is just a "specialization" of fmap with a list as a Functor, why does it even exists?

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

Lennart Augustsson: Haskell error reporting with locations, update

Planet Haskell - Sat, 04/05/2014 - 1:53pm
Since some people (I'm among them) dislike impure features in Haskell I thought I'd present a slight variation on the error location feature that is "pure".

First, the __LOCATION__ variable gets an abstract type. So

data Location __LOCATION__ :: Location It's defined in the Prelude and always in scope. The type cannot be compared, shown, or anything. There's just one thing that can be done, namely:
extractLocation :: Location -> IO String The error function needs a new exception to throw
data ErrorCallLoc = ErrorCallLoc Location String {-# LOCATIONTRANSPARENT error #-} error :: String -> a error s = throw (ErrorCallLoc __LOCATION__ s) This means that the location string cannot be used when we throw the error. But it can be used where the error is caught, since this can only be done in the IO monad.

Under the hood the everything is just as before, Location is just a string. It just can't be manipulated except in the IO monad, so we can pretend it's pure.

newtype Location = Location String extractLocation (Location s) = return s It now looks a lot like Michael Snoyman's proposal.
Categories: Offsite Blogs

New gtk2hs 0.12.4 release

gtk2hs - Wed, 11/21/2012 - 12:56pm

Thanks to John Lato and Duncan Coutts for the latest bugfix release! The latest packages should be buildable on GHC 7.6, and the cairo package should behave a bit nicer in ghci on Windows. Thanks to all!


Categories: Incoming News