Difference between revisions of "WikipediaArticleDesign"
Jump to navigation
Jump to search
DonStewart (talk | contribs) |
m |
||
(8 intermediate revisions by one other user not shown) | |||
Line 5: | Line 5: | ||
Here's a draft structure based on the "[[History_of_Haskell|History of Haskell]]" paper. |
Here's a draft structure based on the "[[History_of_Haskell|History of Haskell]]" paper. |
||
+ | Please make comments on the [[Talk:WikipediaArticleDesign|Discussion page]] |
||
⚫ | |||
⚫ | |||
− | 1. History |
+ | 1. History |
1.1 Related Languages |
1.1 Related Languages |
||
− | 2. |
+ | 2. Overview and Design Principles |
2.1 Laziness |
2.1 Laziness |
||
2.2 Purity |
2.2 Purity |
||
Line 20: | Line 21: | ||
3.1 Syntax |
3.1 Syntax |
||
3.1.1 Layout |
3.1.1 Layout |
||
− | 3.1.2 Functions, currying, application |
+ | 3.1.2 Functions, currying, application, abstraction |
3.1.3 Operators |
3.1.3 Operators |
||
3.1.4 Namespaces |
3.1.4 Namespaces |
||
3.1.5 Declarations vs Expressions |
3.1.5 Declarations vs Expressions |
||
3.1.6 List comprehensions |
3.1.6 List comprehensions |
||
− | 3.1.7 Comments |
||
− | 3.1.8 N+K Controversy |
||
3.2 Algebraic Data Types |
3.2 Algebraic Data Types |
||
Line 36: | Line 35: | ||
3.3 Type System |
3.3 Type System |
||
− | 3.3.1 Type |
+ | 3.3.1 Type classes |
3.3.2 Type defaulting |
3.3.2 Type defaulting |
||
3.3.3 Overloaded Literals |
3.3.3 Overloaded Literals |
||
Line 45: | Line 44: | ||
Existential types |
Existential types |
||
Extensible records |
Extensible records |
||
− | Implicit parameters |
||
Polymorphic Recursion |
Polymorphic Recursion |
||
Higher-Rank Types |
Higher-Rank Types |
||
Generalized ADTs |
Generalized ADTs |
||
+ | Type Families |
||
+ | Unlifted types |
||
Generics |
Generics |
||
Template Metaprogramming |
Template Metaprogramming |
||
3.4 Monads |
3.4 Monads |
||
− | + | Overview |
|
− | + | Applications |
|
− | + | * Monadic IO |
|
− | + | * do-notation |
|
− | + | * References |
|
+ | * Exceptions |
||
+ | * ST monad |
||
+ | * STM monad |
||
+ | Applicative Functors |
||
⚫ | |||
3.6 Concurrency and Parallelism |
3.6 Concurrency and Parallelism |
||
Line 69: | Line 74: | ||
3.7.1 FFI |
3.7.1 FFI |
||
3.7.2 Modules |
3.7.2 Modules |
||
− | 3.7.3 |
+ | 3.7.3 Packages |
+ | |||
+ | 3.8 Semantics |
||
+ | * Static semantics |
||
+ | * Dynamic semantics |
||
+ | |||
⚫ | |||
4. Implementations |
4. Implementations |
||
− | 4.1 GHC |
+ | 4.1 GHC, GHCi |
− | + | 4.2 Hugs |
|
− | 4. |
+ | 4.3 NHC, YHC |
+ | 4.4 Other implementations |
||
⚫ | |||
− | 4.3 Gofer and Hugs |
||
− | 4.3 NHC98 and YHC |
||
− | 4.4 JHC and LHC |
||
− | 4.5 EHC and UHC |
||
− | 4.7 Helium |
||
⚫ | |||
5. Tools |
5. Tools |
||
Line 88: | Line 93: | ||
5.2 Testing |
5.2 Testing |
||
5.3 Alex and Happy |
5.3 Alex and Happy |
||
− | 5.4 Cabal |
||
5.5 Haddock |
5.5 Haddock |
||
5.6 Hoogle and Hayoo |
5.6 Hoogle and Hayoo |
||
+ | |||
− | |||
− | + | 6. Distribution |
|
− | * |
+ | * Cabal |
− | * Hackage |
+ | * Hackage |
+ | * cabal-install |
||
+ | * Haskell Platform |
||
+ | |||
+ | 7. Libraries ''(top 2 libraries by Hackage downloads or notability)'' |
||
* Audio |
* Audio |
||
* Codecs |
* Codecs |
||
Line 100: | Line 108: | ||
* Data Structures |
* Data Structures |
||
* Database |
* Database |
||
+ | * HDBC |
||
* Games |
* Games |
||
+ | * 2D |
||
+ | * 3D |
||
* GUIs |
* GUIs |
||
+ | * gtk2hs |
||
+ | * wxHaskell |
||
+ | * FRP guis |
||
* Languages |
* Languages |
||
* Math |
* Math |
||
+ | * Numeric Prelude |
||
* Music |
* Music |
||
+ | * Haskore |
||
* Network |
* Network |
||
* System |
* System |
||
* Testing |
* Testing |
||
+ | * QuickCheck |
||
+ | * HUnit |
||
* Text |
* Text |
||
+ | * Unicode/UTF8 |
||
* Web |
* Web |
||
+ | * Happstack |
||
6. Applications |
6. Applications |
||
⚫ | |||
− | |||
⚫ | |||
* darcs |
* darcs |
||
Line 124: | Line 143: | ||
* yi, leskah |
* yi, leskah |
||
− | + | ''Notable commercial applications (citing CUFP)'' |
|
* Bluespec (Bluespec) |
* Bluespec (Bluespec) |
||
Line 131: | Line 150: | ||
* Paradise (credit Suisse) |
* Paradise (credit Suisse) |
||
− | + | ''Notable applied research projects (by citations? [http://haskell.org/haskellwiki/Research_papers see here])'' |
|
* Parser combinators |
* Parser combinators |
||
− | * Hardware design |
+ | * [Hardware design] |
− | * Operating systems |
+ | * [http://haskell.org/haskellwiki/Libraries_and_tools/Operating_system Operating systems] |
− | * Functional Reactive Programming |
+ | * [http://haskell.org/haskellwiki/Research_papers/Functional_reactive_programming Functional Reactive Programming] |
7. Community |
7. Community |
Revision as of 16:21, 4 August 2009
Motiviation
The 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" paper.
Please make comments on the 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? see here)
* Parser combinators * [Hardware design] * Operating systems * Functional Reactive Programming
7. Community
9 Further Reading