Differences between version 10 and predecessor to the previous major change of Haskell.
Other diffs: Previous Revision, Previous Author, or view the Annotated Edit History
Newer page: | version 10 | Last edited on Tuesday, December 28, 2004 1:32:52 am | by AristotlePagaltzis | Revert |
Older page: | version 7 | Last edited on Saturday, September 13, 2003 1:08:00 pm | by GerwinVanDeSteeg | Revert |
@@ -1,33 +1,29 @@
-Haskell is another one of those functional programming languages. To quote [
http://www.haskell.org], "In particular, it
is a polymorphicly typed, lazy, purely
functional language"
.
+[
Haskell |
http://www.haskell.org] is a pure
functional ProgrammingLanguage that employs LazyEvaluation and supports generic or PolymorphicTypes
.
-Everything is a function in Haskell. Everything
. If you are
used to languages like
[C
] or [Java], Haskell can be quite hard
to learn. %%%
-''Although it will be an eye-opener, problems that seemed terribly difficult in C will suddenly become easy
to solve -- GlynWebster''%%%
-''On
the flipside, things that are easy
in C (eg: I/O) suddenly become very hard to solve in Haskell :) -- PerryLorier''
+It has some cool concepts, like the dot operator
. If you remember your calculus, it
used the . for functional composition — and so does
[Haskell
]! This allows you
to do something similar
to the pipe operator used
in [Shell] scripting.
-It does have some quite cool concepts though. One in particular is the dot . operator. If you remember your calculus, you use the . for functional composition: so does Haskell
! This allows you to do something similar to the pipe operator used in shell scripting.
+!!! Example
-It also does stuff like LazyEvaluation, supports generic or PolymorphicTypes, and is 'purely functional'
-- this means you can even do mathematical proof on your programs.
+<verbatim>
+
-- sieve: prints the number of prime numbers between 2 and 100000
-See
[http
://www.haskell.org
] for more info.
+sieve ::
[Int] -> [Int]
+sieve [] = []
+sieve (h
:t) = h : sieve [x| x <- t, x `mod` h
/=
]
-!!!Example
+main = (putStrLn . show . length . sieve) [2..100000]
+</verbatim>
- -- sieve: prints the number of prime numbers between 2 and 100000
+!!! Implementations
- sieve
:: [[Int] -> [[Int
]
- sieve [
[] = [
[]
- sieve (h:t
) = h : sieve [[x| x <- t, x `mod` h /= ]
+[HUGS | http
://haskell.org/hugs]
::
+ __H__askell __U__sers' __G__ofer __S__ystem.
+ An interpreter that's good for playing around learning
[Haskell
].
+ (“Gofer” was a subset of
[Haskell
], but HUGS now implements full
[Haskell
].
)
- main = (putStrLn . show . length . sieve)
[[2..100000]
-
-!!!Implementations
-
-__HUGS__ - __H__askell __U__sers' __G__ofer[1] __S__ystem. An interpreter for Haskell. This is good for playing around learning Haskell (which is what you do with Haskell, unless you're serious computer scientist). See:
http://haskell.org/hugs
-
-__GHC__ -
__G__lasglow __H__askell __C__ompiler. A big, optimising compiler for Haskell. See: http://www.haskell.org/ghc/
+[GHC |
http://www.
haskell.org/ghc/]::
+
__G__lasglow __H__askell __C__ompiler.
+
A big, optimising compiler for Haskell.
----
-[1] Gofer was a subset
of Haskell, HUGS now implements full Haskell.
-
------
-
CategoryProgrammingLanguages
+Part
of CategoryProgrammingLanguages, CategoryFunctionalProgrammingLanguages