background preloader

Functional Programming For The Rest of Us

Functional Programming For The Rest of Us
Monday, June 19, 2006 Introduction Programmers are procrastinators. Get in, get some coffee, check the mailbox, read the RSS feeds, read the news, check out latest articles on techie websites, browse through political discussions on the designated sections of the programming forums. Rinse and repeat to make sure nothing is missed. Go to lunch. The only thing, every once in a while challenging articles actually do pop up. I don't know about your list, but a large chunk of the articles in mine are about functional programming. It's true that FP articles and papers are hard to understand, but they don't have to be. So what is FP? A Walk In The Park Fire up the time machine. "Look at these two students", said Plato carefully picking words to make the question educational. Plato smiled. So was born the first attempt to understand the nature of mathematics. Philosophy of mathematics is a very complex subject. A Bit of History3 Let's shift gears in our time machine. Functional Programming Currying

Related:  HaskellvardanpetrosyanSoftware & Tech

How to read Haskell like Python tl;dr — Save this page for future reference. Have you ever been in the situation where you need to quickly understand what a piece of code in some unfamiliar language does? If the language looks a lot like what you’re comfortable with, you can usually guess what large amounts of the code does; even if you may not be completely familiar how all the language features work.

VsHaskell See also [LanguageComparisons]. Haskell Haskell is a modern functional language (like lisp). Why the world needs Haskell - Devalot This is a technical review of Haskell and why software developers should care about functional programming. For a non-technical review of why your company should be using Haskell you might want to watch this introduction to Haskell video by FP Complete. TL;DR: Writing high-quality, bug-free software isn’t easy. Haskell (and similar languages) provide the programmer with the tools necessary to get closer than ever before. By removing entire categories of bugs (such as those caused by null pointers and nil objects, type coercions, accidental mutation, etc.) and introducing a powerful type system, programmers can write better code in the same amount of time (and often less) than more traditional languages. Null Pointers and Undefined Values

Neowin: Now Office is being banned by China's government Earlier this year, China moved to ban the use of Windows 8, and now it looks like the country is not yet done trying to distance itself from Microsoft software. In a report from CRI, it's stated that part of the Chinese central government and subordinate departments are banning the use of Microsoft Office. The reason is the same as the ban of Windows 8: Chinese officials allegedly believe it contains spyware for the U.S. government. Instead of Office, China will use its own internally grown software as a replacement for the popular productivity suite, CRI's report claims. This news is obviously a huge blow for Microsoft, which is trying to penetrate the Chinese market with legitimate copies of its software. At one point, former Microsoft CEO Steve Ballmer said that nine out of 10 copies of Windows in China were pirated versions.

Hoogle 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. The Hoogle manual contains more details, including further details on search queries, how to install Hoogle as a command line application and how to integrate Hoogle with Firefox/Emacs/Vim etc. I am very interested in any feedback you may have. Please email me, or add an entry to my bug tracker. A directory of direct links to delete your account from web services. Can't find what you're looking for? Help make better. easy No Info Available Login to your account, go to parameters, click Delete my account. Confirm by clicking I want to delete my account.

Is Haskell the Cure? - Mathias Biilmann 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. My goto tool for writing fast, concurrent web services is Haskell. So I thought I would see how a direct translation of the fibonacci service would fare with the Snap Framework. Here's the implementation in 11 lines of Haskell: There's other tutorials out there, but you'll like this one the best for sure: You can just cut and paste the code from this tutorial bit by bit, and in the process, your new program will create magically create more and more cool graphics along the way... The final program will have less than 100 lines of Haskell[1] and will organize a mass picnic in an arbitrarily-shaped public park map and will print pretty pictures showing where everyone should sit! (Here's what the final product will look like, if you're curious...) The code in this tutorial is a simplified version of the code I'm using to organize flash mob picnics for my art project, picnicmob... Be sure to check out the site and sign up if you live in one of the cities we're starting off with :-) [1] - Lines of active code only, not counting optional function signatures.

Ubuntu Universal USB Installer IMPORTANT NOTE: Your USB drive must be Fat32/NTFS formatted, otherwise Syslinux will fail and your drive will NOT Boot. Bootable USB Flash Drive Creation Requirements: Universal-USB-Installer- Vista/7/8/10 or WINE to create the USB (Win 98/XP/2K WILL NOT Work!)*Fat32 or NTFS Formatted Flash Drive. Haskell Haskell is a functional programming language. If you have some programming experience, see the overview to see a bit of how Haskell works and is different from other languages. Haskell is distinct in a few ways: Haskell is a pure functional programming language. If you call the same function twice in two different places with the same arguments, it will return exactly the same value both times.Haskell provides a modern type system with sophisticated features like typeclasses and generalized algebraic data types (soon enough, terms like those will roll smoothly off your tongue).Haskell is also a lazy language that does calculations only when they are needed to get a final result. Haskell programmers enjoy their language because dealing with only pure functions makes code much easier to understand and each function's correctness much easier to analyze and even to prove.

Haskell: The Confusing Parts If you’re used to the C family of languages, or the closely related family of “scripting languages,” Haskell’s syntax (mainly) is a bit baffling at first. For some people, it can even seem like it’s sneaking out from under you every time you think you understand it. This is sort of a FAQ for people who are new to Haskell, or scared away by its syntax. Use this as a cheat sheet, not a textbook. Beginning Haskell Before you start About this tutorial This tutorial targets programmers of imperative languages wanting to learn about functional programming in the language Haskell. In an introductory tutorial, many of Haskell's most powerful and complex features cannot be covered. In particular, the whole area of type classes and algebraic types (including abstract data types) is a bit much for a first introduction.