|
|
Line 1: |
Line 1: |
− | == Motiviation ==
| |
| | | |
− | The [http://en.wikipedia.org/wiki/Haskell_%28programming_language%29 Haskell Wikipedia Article] is an ad hoc collection of edits with no overriding structure or theme. The Haskell community should be able to contribute a better article to represent this project.
| |
− |
| |
− | Here's a draft structure based on the "[[History_of_Haskell|History of Haskell]]" paper.
| |
− |
| |
− | Please make comments on the [[Talk:WikipediaArticleDesign|Discussion page]]
| |
− |
| |
− | == Structures ==
| |
− |
| |
− | 1. History
| |
− | 1.1 Related Languages
| |
− |
| |
− | 2. Overview and Design Principles
| |
− | 2.1 Laziness
| |
− | 2.2 Purity
| |
− | 2.3 Type classes
| |
− | 2.4 Open and free
| |
− |
| |
− | 3. Features
| |
− | 3.1 Syntax
| |
− | 3.1.1 Layout
| |
− | 3.1.2 Functions, currying, application, abstraction
| |
− | 3.1.3 Operators
| |
− | 3.1.4 Namespaces
| |
− | 3.1.5 Declarations vs Expressions
| |
− | 3.1.6 List comprehensions
| |
− |
| |
− | 3.2 Algebraic Data Types
| |
− | 3.2.1 Pattern Matching
| |
− | 3.2.2 Abstract Types
| |
− | 3.2.3 Lists
| |
− | 3.2.4 Tuples
| |
− | 3.2.5 Records
| |
− |
| |
− | 3.3 Type System
| |
− | 3.3.1 Type classes
| |
− | 3.3.2 Type defaulting
| |
− | 3.3.3 Overloaded Literals
| |
− | 3.3.4 Higher Kinded Polymorphism
| |
− | 3.3.5 Multi-Parameter Type Classes
| |
− | 3.3.6 Functional Dependencies
| |
− | 3.3.7 Type System Extensions
| |
− | Existential types
| |
− | Extensible records
| |
− | Polymorphic Recursion
| |
− | Higher-Rank Types
| |
− | Generalized ADTs
| |
− | Type Families
| |
− | Unlifted types
| |
− | Generics
| |
− | Template Metaprogramming
| |
− |
| |
− | 3.4 Monads
| |
− | Overview
| |
− | Applications
| |
− | * Monadic IO
| |
− | * do-notation
| |
− | * References
| |
− | * Exceptions
| |
− | * ST monad
| |
− | * STM monad
| |
− | Applicative Functors
| |
− | Arrows
| |
− |
| |
− | 3.6 Concurrency and Parallelism
| |
− | Threads
| |
− | Shared memory communcation
| |
− | Futures and sparks
| |
− | Software Transactional Memory
| |
− | Data Parallelism
| |
− |
| |
− | 3.7 Programming in the Large
| |
− | 3.7.1 FFI
| |
− | 3.7.2 Modules
| |
− | 3.7.3 Packages
| |
− |
| |
− | 3.8 Semantics
| |
− | * Static semantics
| |
− | * Dynamic semantics
| |
− |
| |
− | 3.9 Extensions to Haskell
| |
− |
| |
− | 4. Implementations
| |
− | 4.1 GHC, GHCi
| |
− | 4.2 Hugs
| |
− | 4.3 NHC, YHC
| |
− | 4.4 Other implementations
| |
− |
| |
− | 5. Tools
| |
− | 5.0 Profiling
| |
− | 5.1 Debugging
| |
− | 5.2 Testing
| |
− | 5.3 Alex and Happy
| |
− | 5.5 Haddock
| |
− | 5.6 Hoogle and Hayoo
| |
− |
| |
− | 6. Distribution
| |
− | * Cabal
| |
− | * Hackage
| |
− | * cabal-install
| |
− | * Haskell Platform
| |
− |
| |
− | 7. Libraries ''(top 2 libraries by Hackage downloads or notability)''
| |
− | * Audio
| |
− | * Codecs
| |
− | * Concurrency
| |
− | * Data Structures
| |
− | * Database
| |
− | * HDBC
| |
− | * Games
| |
− | * 2D
| |
− | * 3D
| |
− | * GUIs
| |
− | * gtk2hs
| |
− | * wxHaskell
| |
− | * FRP guis
| |
− | * Languages
| |
− | * Math
| |
− | * Numeric Prelude
| |
− | * Music
| |
− | * Haskore
| |
− | * Network
| |
− | * System
| |
− | * Testing
| |
− | * QuickCheck
| |
− | * HUnit
| |
− | * Text
| |
− | * Unicode/UTF8
| |
− | * Web
| |
− | * Happstack
| |
− |
| |
− | 6. Applications
| |
− | ''Notable open source applications (by popularity)''
| |
− |
| |
− | * darcs
| |
− | * xmonad
| |
− | * pugs
| |
− | * pandoc
| |
− | * gitit
| |
− | * cpphs
| |
− | * agda
| |
− | * yi, leskah
| |
− |
| |
− | ''Notable commercial applications (citing CUFP)''
| |
− |
| |
− | * Bluespec (Bluespec)
| |
− | * Cryptol (Galois)
| |
− | * Atom (Eaton)
| |
− | * Paradise (credit Suisse)
| |
− |
| |
− | ''Notable applied research projects (by citations? [http://haskell.org/haskellwiki/Research_papers see here])''
| |
− |
| |
− | * Parser combinators
| |
− | * [Hardware design]
| |
− | * [http://haskell.org/haskellwiki/Libraries_and_tools/Operating_system Operating systems]
| |
− | * [http://haskell.org/haskellwiki/Research_papers/Functional_reactive_programming Functional Reactive Programming]
| |
− |
| |
− | 7. Community
| |
− |
| |
− | 9 Further Reading
| |