Haskell

software-development
computer-languages

https://en.wikipedia.org/wiki/Haskell_%28programming_language%29
http://net.tutsplus.com/tutorials/other/why-haskell/ - done reading
https://www.haskell.org/tutorial/haskell-98-tutorial.pdf
http://www.umiacs.umd.edu/~hal/docs/daume02yaht.pdf
https://wiki.haskell.org/wikiupload/8/85/TMR-Issue13.pdf
https://wiki.haskell.org/Haskell_in_industry
https://wiki.haskell.org/Haskell
irc://irc.freenode.net/haskell
http://learnyouahaskell.com/chapters
http://www.haskell.org/hoogle/ - a Google-like search engine that allows you to search by name, or even by type. So, if you need a function that converts a string to a list of strings, you would type String -> [String], and it will provide you with all of the applicable functions.
https://en.wikipedia.org/wiki/Foreign_function_interface
https://www.fpcomplete.com/school
http://tryhaskell.org/ - online IDE
http://cheatsheet.codeslower.com/
https://wiki.haskell.org/Hitchhikers_guide_to_Haskell
http://www.willamette.edu/~fruehr/haskell/evolution.html
http://haskellnews.org/
https://themonadreader.wordpress.com/
http://www.se-radio.net/2008/08/episode-108-simon-peyton-jones-on-functional-programming-and-haskell/
https://www.fpcomplete.com/business/haskell-center/overview/
http://cufp.org/2015/

What are the characteristics / features of Haskell?

  1. Haskell is a purely functional language.
  2. Haskell is a strongly typed language, which basically means you can't, for instance, put an int where a string is supposed to go. But Haskell is also "type inferencing," which means you usually don't need to write the types and Haskell will figure it out.
  3. lazy evaluation
  4. pattern matching
  5. list comprehension
  6. type classes
  7. type polymorphism.
  8. There is a distinct construct for representing side effects, orthogonal to the type of functions. A pure function may return a side effect which is subsequently executed, modeling the impure functions of other languages. https://en.wikipedia.org/wiki/Haskell_%28programming_language%29
  9. Haskell has a strong, static type system based on Hindley–Milner type inference. Haskell's principal innovation in this area is to add type classes, which were originally conceived as a principled way to add overloading to the language,[28] but have since found many more uses

What is a higher order function?

Higher order functions are functions that accept other functions as an input, or functions that output a function as its output. A helpful example of this is Haskell's built-in map function. map takes in a function that was meant for a single value, and performs this function on an array of objects. Higher order functions allow you to abstract sections of code that multiple functions have in common, and then simply supply a function as a parameter to change the overall effect. http://code.tutsplus.com/tutorials/why-haskell--net-28066

What is GHC?

Glasgow Haskell Compiler (GHC) implementation representing the current de facto standard. https://en.wikipedia.org/wiki/Haskell_%28programming_language%29

GHC is both an interpreter and native-code compiler that runs on most platforms. GHC is noted for its high-performance implementation of concurrency and parallelism,[30] and for having a rich type system incorporating recent innovations such as generalized algebraic data types and type families. https://en.wikipedia.org/wiki/Haskell_%28programming_language%29

What is FFI?

Foreign Function Interface. It define bindings to other programming languages.

What is a Monad?

The construct which represents side effects is an example of a monad. Monads are a general framework which can model different kinds of computation, including error handling, nondeterminism, parsing, and software transactional memory. Monads are defined as ordinary datatypes, but Haskell provides some syntactic sugar for their use.

What is Cabal?

Cabal is a tool for building and packaging Haskell libraries and programs.

What are available web frameworks?

  1. Yesod
  2. Happstack
  3. Snap
Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License