Difference between revisions of "Cookbook"

From HaskellWiki
Jump to navigation Jump to search
(fleshed out the sections a little)
(Added link to similar F# cookbook)
 
(238 intermediate revisions by 27 users not shown)
Line 1: Line 1:
  +
== Haskell Cookbook ==
'''We need to start a GOOD (aka, not a PLEAC clone) Haskell cookbook.'''
 
  +
* [[Cookbook/Compilers and interpreters|Haskell compilers and interpreters]]
  +
* [[Cookbook/Numbers|Numbers]]
  +
* [[Cookbook/Lists and strings|Lists and strings]]
  +
* [[Cookbook/Other data structures|Other data structures]]
  +
* [[Cookbook/Dates And Time|Dates and time]]
  +
* [[Cookbook/Pattern matching|Pattern matching]]
  +
* [[Cookbook/Interactivity|Interactivity]]
  +
* [[Cookbook/Files|Files]]
  +
* [[Cookbook/Network programming|Network programming]]
  +
* [[Cookbook/XML|XML]]
  +
* [[Cookbook/Databases access|Databases access]]
  +
* [[Cookbook/Graphical user interfaces|Graphical user interfaces]]
  +
* [[Cookbook/PDF files|PDF files]]
  +
* [[Cookbook/FFI|FFI]]
  +
* [[Cookbook/Testing|Testing]]
   
  +
== Similar projects for other programming languages ==
== GHCi/Hugs ==
 
  +
* [http://cl-cookbook.sourceforge.net/ Common Lisp Cookbook]
=== GHCi Interaction ===
 
  +
* [http://pleac.sourceforge.net/ PLEAC]
To start GHCi from a command prompt, simply type `ghci'
 
  +
* [http://www.zenspider.com/Languages/Ruby/Cookbook/index.html Ruby Cookbook]
 
  +
* [http://schemecookbook.org/Cookbook/WebHome Scheme Cookbook]
$ ghci
 
  +
* [http://fssnip.net/ F# Snippets]
___ ___ _
 
  +
[[Category:FAQ]]
/ _ \ /\ /\/ __(_)
 
  +
[[Category:How to]]
/ /_\// /_/ / / | | 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>
 
 
To check the type of an expression or function, use the command `:t'
 
<haskell>
 
Prelude> :t x
 
x :: Integer
 
</haskell>
 
 
== Strings ==
 
=== Output ===
 
Strings can be output in a number of different ways.
 
 
<haskell>
 
Prelude> putStr "Foo"
 
FooPrelude>
 
</haskell>
 
As you can see, [http://haskell.org/ghc/docs/latest/html/libraries/base/Prelude.html#v%3AputStr putStr] does not include the newline character `\n'. We can either use putStr like this:
 
<haskell>
 
Prelude> putStr "Foo\n"
 
Foo
 
</haskell>
 
Or use [http://haskell.org/ghc/docs/latest/html/libraries/base/Prelude.html#v%3AputStrLn putStrLn], which is already in the Standard Prelude
 
<haskell>
 
Prelude> putStrLn "Foo"
 
Foo
 
</haskell>
 
 
=== Concatenation ===
 
Concatenation of strings is done with the `++' operator.
 
<haskell>
 
Prelude> "foo" ++ "bar"
 
"foobar"
 
</haskell>
 
== Numbers ==
 
 
 
== Dates and Time ==
 
Use `System.Time.getClockTime' to get a properly formatted date stamp.
 
 
<haskell>
 
Prelude> System.Time.getClockTime
 
Wed Feb 21 20:05:35 CST 2007
 
</haskell>
 
 
== Lists ==
 
Haskell has all of the general list manipulation functions.
 
 
<haskell>
 
Prelude> head [1,2,3]
 
1
 
 
Prelude> tail [1,2,3]
 
[2,3]
 
 
Prelude> length [1,2,3]
 
3
 
</haskell>
 
 
== Pattern Matching ==
 
Haskell does implicit pattern matching.
 
 
== Arrays ==
 
 
 
== Files ==
 
 
 
== Network Programming ==
 
 
 
== XML ==
 
 
 
== Databases ==
 
 
 
== FFI ==
 

Latest revision as of 18:49, 26 May 2011