background preloader

Learn You a Haskell for Great Good!

Learn You a Haskell for Great Good!
Hey yo! This is Learn You a Haskell, the funkiest way to learn Haskell, which is the best functional programming language around. You may have heard of it. This guide is meant for people who have programmed already, but have yet to try functional programming. The whole thing is completely free to read online, but it's also available in print and I encourage you to buy as many copies as you can afford! To contact me, shoot me an email to: bonus at learnyouahaskell dot com!

Related:  Haskell

View topic - Haskell vs Prolog, or "Giving Haskell a choice" I've become more and more familiar with Haskell, and more and more have I begun to realize its true potential. It's truly frightening, really. One of the things I've started to realize is how well it can adapt different programming paradigms without sacrificing its functional purity.Another language I'm quite fond of is Prolog, and I'm actually somewhat sad I haven't spent more time hacking in it.That said, I decided to try a little experiment: writing Prolog in Haskell, staying as true to Prolog as possible, and see if the forced paradigm breaks it. I'll be rather thorough in explaining how things work for the benefit of the Prolog and Haskell illiterates out there, so if you're familiar with both you might want to tl;dr, or just bask in the glory that is Prolog and Haskell combined.

Peter Nixey - How to be a great software developer Rails/Angular developer, Entrepreneur & YC alum. Previously built and sold Now O(only)TO at and part time partner at Entrepreneur First. Disclaimer: This is a very long piece, much longer than I would normally write on any subject. I have edited it back but on sending it to friends to read they agreed that there was no one bit that should be cut. mode for Emacs There are many Emacs packages and modules for Haskell. The most prominent ones are haskell-mode, ghc-mod and Scion. 1 Newbie guide Emacs is an extensible texteditor which can be extended with so-called "modes" and makes great use of keystrokes. Modes are written in Emacs Lisp (.el) programming language and provide additional commands and keystrokes.

One Day, We Will All Be Programmers I probably spend more time than I should thinking about the economy. When I do, I often think about what it is most residents of the West do for a living, which I like to call the “economic profile” of the West. (Others call this employment by sector.) I think about how that profile has changed in the last hundred or so years, and about how it might change in my lifetime. HEAT: The Haskell Educational Advancement Tool - School of Computing - University of Kent Using a separate editor and interpreter provides many distracting obstacles for inexperienced students learning a programming language. Professional interactive development environments, however, confuse and distract with their excessive features. Hence Heat was designed for novice students learning the functional programming language Haskell.

Composing Reactive Animations Conal Elliott Microsoft Research Graphics Group Copyright 1998 We have all seen a lot of wonderful looking computer graphics, and many of us have spent time playing video games or watching our kids (or their kids) play them. It is clear that computer graphics, especially interactive graphics, is an incredibly expressive medium, with potential beyond our current imagination. Affordable personal computers are capable of very impressive 2D animation and multi-media. Interactive 3D graphics is already available, and soon it will be standard for new personal computers.

Git Cheatsheet stash workspace index local repository Hoogle - st lib Hoogle is a Haskell API search engine, which allows you to search many standard Haskell libraries by either function name, or by approximate type signature. Example searches: map (a -> b) -> [a] -> [b] Ord a => [a] -> [a] Data.Map.insert Enter your own search at the top of the page. Why I love Lisp This post was extracted from a small talk I gave at Simplificator, where I work, titled “Why I love Smalltalk and Lisp”. There’s another post titled “Why I love Smalltalk” published before this one. Desert by Guilherme Jófili Lisp is an old language. Very old. Today there are many Lisps and no single language is called Lisp today.

Purely Functional Configuration Management with Nix and NixOS Configuration management is the foundation that makes modern infrastructure possible. Tools that enable configuration management are required in the toolbox of any operations team, and many development teams as well. Although all the tools aim to solve the same basic set of problems, they adhere to different visions and exhibit different characteristics. The issue is how to choose the tool that best fits each organization's scenarios. This InfoQ article is part of a series that aims to introduce some of the configuration tools on the market, the principles behind each one and what makes them stand out from each other. You can subscribe to notifications about new articles in the series here. Typeclassopedia By Brent Yorgey, Originally published 12 March 2009 in issue 13 of the Monad.Reader. Ported to the Haskell wiki in November 2011 by Geheimdienst. This is now the official version of the Typeclassopedia and supersedes the version published in the Monad.Reader. Please help update and extend it by editing it yourself or by leaving comments, suggestions, and questions on the talk page.

Regular Expressions By Sam Hughes Regular expressions ("regexes") are supercharged Find/Replace string operations. Regular expressions are used when editing text in a text editor, to: check whether the text contains a certain pattern find those pattern matches, if there are any pull information (i.e. substrings) out of the text make modifications to the text. As well as text editors, almost every high-level programming language includes support for regular expressions. In this context "the text" is just a string variable, but the operations available are the same.

4.12. Using shared libraries On some platforms GHC supports building Haskell code into shared libraries. Shared libraries are also sometimes known as dynamic libraries, in particular on Windows they are referred to as dynamic link libraries (DLLs). Shared libraries allow a single instance of some pre-compiled code to be shared between several programs. In contrast, with static linking the code is copied into each program. Using shared libraries can thus save disk space.

Related:  HaskellHaskellCoursesvialetteCoding