Differences between version 2 and predecessor to the previous major change of Haskell.
Other diffs: Previous Revision, Previous Author, or view the Annotated Edit History
Newer page: | version 2 | Last edited on Monday, February 24, 2003 3:17:37 pm | by GlynWebster | Revert |
Older page: | version 1 | Last edited on Monday, February 24, 2003 12:05:15 pm | by SamJansen | Revert |
@@ -1,11 +1,12 @@
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".
-Everything is a function in Haskell. Everything. If you are used to languages like C or Java, Haskell can be quite hard to learn.
+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''
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.
-It also does stuff like lazy evaluation
, supports generic or polymorphic types
, and is 'purely functional' -- this means you can even do mathematical proof on your programs.
+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.
See [http://www.haskell.org] for more info. A short snippet of some Haskell code from a book:
mergE (a:x) (b:y)
@@ -14,7 +15,7 @@
| (a==b)
= a : mergE x y
| otherwise
= b : mergE (a:x) y
- mergE (a:x) [] = (a:x)
- mergE [] (b:y) = (b:y)
- mergE [] [] = []
+ mergE (a:x) [
[] = (a:x)
+ mergE [
[] (b:y) = (b:y)
+ mergE [
[] [
[] = [
[]