background preloader

Haskell

Facebook Twitter

Remembering Paul Hudak. Renowned computer scientist Paul Hudak, one of the designers of the Haskell programming language, died of leukemia this week.

Remembering Paul Hudak

There’s been an outpouring of reactions from people Paul’s life and work has touched. Paul was my Ph.D. adviser at Yale in the 1990s. He supervised my work, paid for my education, and created an environment that enabled me to learn from some of the brightest minds in the world. Paul was an influential figure in the advancement of functional programming. Functional programming advocates a declarative style, as opposed to procedural or imperative style, of programming. One of the strongest influences of functional programming came from Lambda Calculus, a mathematical construct formulated by Alonzo Church in the 1930s.

In 1977, around the time Paul was starting his own Ph.D. research, functional programming got a tremendous boost when John Backus presented his Turing Award lecture titled “Can Programming be Liberated from the von Neumann Style?” Heather - F# Light. Posted on 27 August 2015 Minor fixes and improvements: fixed let in encapsulation, e.g. you no longer can use let bindings outside in blocks e.g. this code.

Heather - F# Light

Quora. String - Haskell list of list of chars adding to tuple. Coliru. Do it with fun: kill next puzzle. I just stumbled upon a blog-post where Mittal Patel solved this little puzzle using PHP: 100 people standing in a circle in an order 1 to 100.

do it with fun: kill next puzzle

No. 1 has a sword. He kills next person (i.e. no. 2) and gives sword to next to next (i.e no. 3). All person does the same until only 1 survives. Which number survives at the last? I liked the idea of using a quick program to find the solution for you – but I think the imperative solution really is quite too long here. Everyday hassles in Go. Go became a reliable ally of mine during the past years.

Everyday hassles in Go

I use it in my day job and for side projects alike. I quite like the Go ecosystem, the tooling is great, from go fmt to race detector one can feel that the authors have done their share of coding in the wild. The standard library is very comprehensive (especially considering the age of the language), the documentation is top notch. The language itself though, could be improved a lot by borrowing battle tested ideas from more modern ones. Unfortunately, a lot of Go programmers are coming from untyped languages, which means they haven’t yet acquired the taste for sufficiently expressive type systems, thus they may not know about alternative approaches. This lack of perspective in the Go community hinders the progress of the language - people do not exert enough force toward the authors (not like they seem to be crowd pleasers anyway) to better the language. Making a Blog with Yesod. Haskell For Kids! Introduction. In a couple weeks, I’ll be posting a blog entry once a week called “Haskell for Kids”.

Haskell For Kids! Introduction

This is an introduction to what that’s all about. What Is It, and Why? I have the excellent chance this school year to teach Haskell to a group of children aged 12 to 13 years old! I’m very excited about it. I’m teaching the class as part of the Little School on Vermijo, which is a neighborhood school taught by my neighbor, Sue. Having fun with type-level naturals. How Lazy Evaluation Works in Haskell. Little Lambda decided to clean up his room at a later time.

How Lazy Evaluation Works in Haskell

Lazy evaluation is the most widely used method for executing Haskell program code on a computer. It can make our code simpler and more modular, but it can also cause confusion when it comes to memory usage, a common pitfall for beginners. For instance, the innocuous looking expression foldl (+) 0 [1..10^8] requires gigabytes of memory to evaluate. In this tutorial, I want to explain how lazy evaluation works and what it means for the time and space usage of a Haskell program. I will begin by explaining the basics of graph reduction and afterwards discuss the strict left fold, a prototypical example for understanding and fixing space leaks.

Maybe Maybe is not so bad. I’m having some FUN with FP101x by Erik Meijer on the edX plattform and watched the lectures on the countdown problem yesterday.

maybe Maybe is not so bad

Now I think Erik has very strong opinions and I really like this – most of the time – but there he once again told us about his mislike of Maybe and why list are just nicer. He did not name any more reasons besides that lists are just more elegant to deal with in Haskell and I assume he is talking about list-comprehensions that let us write the code indeed very elegantly (have a look at the original paper). But wait – we have Monad comprehensions back, and having these, all I had to do was change 4 lines of the provided template in the course to get the exact same results: You can find the changed template here. So if we set aside the extension and the two things that would work for lists (and are there more readable IMHO anyway) too we have one difference and that is just the type. Carsten König sur Twitter : "Ahh...much better.. #mbp decals #haskell...

Report. Wiki. Pascals triangle in Haskell … or why point-free sometimes is pointless. 10. Codewars. Missingfaktor/young-haskell-padawans-1-long-live-tydd. Λ Bubble Pop! Being Lazy. The First Monad Tutorial by Phillip Wadler - YOW! 2013. The Constrained Monad Problem. Profunctors in Haskell. > {-# LANGUAGE TypeSynonymInstances, RankNTypes, ExistentialQuantification #-}

Profunctors in Haskell

24 Days of Hackage: profunctors. Yesterday, Tom showed us a different type of functor than the ordinary Haskell Functor - the contravariant functor.

24 Days of Hackage: profunctors

Today, Tom’s going to guide us through another type of functor - the profunctor. Yesterday, we considered the intuition that functors are producers of output, and contravariant functors are consumers of input - and both functors can be adapted to work with different types. What about a datatype that represents both an “adaptable consumer of input” and an “adaptable producer of output” at the same time, i.e. some sort of “pipe” structure? This is exactly what a Profunctor instance is, and again the function arrow a -> b gives us our prototypical example of such a type. A Profunctor has two type parameters, a and b. I love profunctors. They're so easy. “I love profunctors.

I love profunctors. They're so easy.

They're so easy.” —beaky on #haskell [日本語版] Covariant Functors. Is there a type 'Any' in haskell? - Stack Overflow. The Hassle of Haskell — CSS Perverts. Several hours ago I made a controversial decision to leave Node and go back to vanilla JavaScript. This proved to be an overly ambitious move that I sincerely regret, as vanilla JavaScript, unfortunately, is not backwards compatible from Node.

This was quite a road block for me, since I have been spoiled by large efforts to retain backwards compatibility in open source projects like WordPress and My Library. I had to quickly change my route and go with another language that I knew had a large community in contrast to vanilla JavaScript — which was lacking in support in the local developer community. As we developers have learned over the past few weeks, Go is another replacement for Node. Purelyfunc : Haskell Lenses In Pictures ...

Lenses In Pictures - adit.io. You should know what a functor is before reading this post. Read this to learn about functors. Suppose you want to make a game: Ok, now how would you move this player? MoveX (Mario (Point xpos ypos)) val = Mario (Point (xpos + val) ypos) Haskell - Specialization with Constraints - Stack Overflow. Picklercombinators. Dohaskell: tagged Haskell learning resources. Ide-haskell. Welcome to Haskell IDE plugin for amazing Atom editor! This plugin is intended to help you in Haskell developing.

Haskell IDE is currently in active development state. Features Cabal project autodetection. Towers of Hanoi. Towers of Hanoi You are encouraged to solve this task according to the task description, using any language you may know. In this task, the goal is to solve the Towers of Hanoi problem with recursion. [edit] ActionScript public function move(n:int, from:int, to:int, via:int):void{ if (n > 0) { move(n - 1, from, via, to); trace("Move disk from pole " + from + " to pole " + to); move(n - 1, via, to, from); }} [edit] Ada. CarstenKoenig/openshift-scotty. Functional Programming in the Cloud: How to Run Haskell on OpenShift. Although it is not one of the Red Hat-supported languages for OpenShift, Haskell web applications run on the platform with the aid of the community-created Haskell cartridge project.

Addh-gettingsharper.rhcloud. Automated Unit Testing in Haskell. What I Wish I Knew When Learning Haskell ( Stephen Diehl ) Version 2.3. Haskell. [Haskell-cafe] New GHC Features for 7.10.1 and Beyond. Pointfree. Pointfree Style It is very common for functional programmers to write functions as a composition of other functions, never mentioning the actual arguments they will be applied to.

Try Haskell! An interactive tutorial in your browser. Babysteps in using Persistent to interact with PostgreSQL. [ny-haskell] Diagrams: Declarative Vector Graphics in Haskell with Brent Yorgey (Part 1 of 2) FP Complete. Haskell eXchange 2013: Simon Peyton Jones on. Eyal Lotem's thoughts: Comparing Python and Haskell. The case for Python. A regular expression matcher.

Regular expressions (regexps) are a both a theoretical model of computation and a practical basis for language processing (e.g. the Unix command-line tools grep and awk, scripting languages such as bash and perl and the lex and alex compiler-building tools). Best practice of using Haskell/Cabal (on Windows) : haskell. Processing trees with F# zipper computation. Is Haskell the Cure? Ted Dziuba's well executed trolling, Node.js is Cancer has been sucessful in getting people all riled up, benchmarking fibonacci servers in all the popular scripting languages. Both Joshua Kehn and Brian Beck reaches the conclusion that Node is more than fast enough through their benchmarks of Ruby, PHP and Python versions of the Node fibonacci example. Testing, proving, checking – How to verify code properties. As programmers we often want to express that a special property holds for a method, e.g. we want to say that the associativity law holds for list concatenation.

Awesome Haskell: Hoogle FTW. You know Hoogle – don’t you? Getting started with using SublimeHaskell and Cabal. Foldr Foldl Foldl' Real World Haskell. WxHaskell/Building. Gtk2Hs » Overview. HDF5DotNet Home. Hs-dotnet: Pragmatic .NET interop for Haskell - haskell. Call a Haskell function in .NET. Integrating Haskell with .Net. An Invitation for Kids to Learn Programming : programming. Monad.