Difference between revisions of "Cookbook"
Jump to navigation
Jump to search
Line 1: | Line 1: | ||
[[Category:How to]] |
[[Category:How to]] |
||
+ | * [[Cookbook/General hints|General hints]] |
||
* [[Cookbook/Strings|Strings]] |
* [[Cookbook/Strings|Strings]] |
||
* [[Cookbook/Numbers|Numbers]] |
* [[Cookbook/Numbers|Numbers]] |
||
Line 23: | Line 24: | ||
This page is based on the Scheme Cookbook at |
This page is based on the Scheme Cookbook at |
||
http://schemecookbook.org/Cookbook/WebHome''' |
http://schemecookbook.org/Cookbook/WebHome''' |
||
− | == Prelude == |
||
− | |||
− | A lot of functions are defined in the "[http://www.haskell.org/hoogle/?q=Prelude Prelude]". Also, if you ever want to search for a function, based on the name, type or module, take a look at the excellent [http://www.haskell.org/hoogle/ Hoogle]. This is for a lot of people a must-have while debugging and writing Haskell programs. |
||
− | |||
− | == GHCi/Hugs == |
||
− | === GHCi interaction === |
||
− | To start GHCi from a command prompt, simply type `ghci' |
||
− | |||
− | $ ghci |
||
− | ___ ___ _ |
||
− | / _ \ /\ /\/ __(_) |
||
− | / /_\// /_/ / / | | GHC Interactive, version 6.6, for Haskell 98. |
||
− | / /_\\/ __ / /___| | http://www.haskell.org/ghc/ |
||
− | \____/\/ /_/\____/|_| Type :? for help. |
||
− | |||
− | Loading package base ... linking ... done. |
||
− | Prelude> |
||
− | |||
− | [http://haskell.org/ghc/docs/latest/html/libraries/base/Prelude.html Prelude] is the "base" library of Haskell. |
||
− | |||
− | To create variables at the GHCi prompt, use `let' |
||
− | <haskell> |
||
− | Prelude> let x = 5 |
||
− | Prelude> x |
||
− | 5 |
||
− | Prelude> let y = 3 |
||
− | Prelude> y |
||
− | 3 |
||
− | Prelude> x + y |
||
− | 8 |
||
− | </haskell> |
||
− | |||
− | `let' is also the way to create simple functions at the GHCi prompt |
||
− | <haskell> |
||
− | Prelude> let fact n = product [1..n] |
||
− | Prelude> fact 5 |
||
− | 120 |
||
− | </haskell> |
||
− | |||
− | |||
− | === Checking Types === |
||
− | To check the type of an expression or function, use the command `:t' |
||
− | <haskell> |
||
− | Prelude> :t x |
||
− | x :: Integer |
||
− | Prelude> :t "Hello" |
||
− | "Hello" :: [Char] |
||
− | </haskell> |
||
− | Haskell has the following types defined in the [http://haskell.org/ghc/docs/latest/html/libraries/base/Prelude.html Standard Prelude]. |
||
− | <haskell> |
||
− | Int -- bounded, word-sized integers |
||
− | Integer -- unbounded integers |
||
− | Double -- floating point values |
||
− | Char -- characters |
||
− | String -- equivalent to [Char], strings are lists of characters |
||
− | () -- the unit type |
||
− | Bool -- booleans |
||
− | [a] -- lists |
||
− | (a,b) -- tuples / product types |
||
− | Either a b -- sum types |
||
− | Maybe a -- optional values |
||
− | </haskell> |
Revision as of 10:44, 23 April 2009
- General hints
- Strings
- Numbers
- Dates and time
- Lists
- Other data structures
- Pattern matching
- Interactivity
- Files
- Network programming
- XML
- Databases access
- Graphical user interfaces
- PDF files
- FFI
- Testing
This article is a draft, with further revisions actively invited. Drafts are typically different than stubs in that these articles are in an active edit process. Feel free to help by expanding the article.
We need to start a Haskell centered cookbook (aka, not a PLEAC clone)
This page is based on the Scheme Cookbook at http://schemecookbook.org/Cookbook/WebHome