mirror of
https://github.com/adambard/learnxinyminutes-docs.git
synced 2024-12-23 09:41:36 +00:00
added info about tuples, integrated wild card use into a function definition
This commit is contained in:
parent
0d211d3419
commit
8c30522d58
@ -124,6 +124,9 @@ last [1..5] -- 5
|
||||
fst ("haskell", 1) -- "haskell"
|
||||
snd ("haskell", 1) -- 1
|
||||
|
||||
-- pair element accessing does not work on n-tuples (i.e. triple, quadruple, etc)
|
||||
snd ("snd", "can't touch this", "da na na na") -- error! see function below to get around this
|
||||
|
||||
----------------------------------------------------
|
||||
-- 3. Functions
|
||||
----------------------------------------------------
|
||||
@ -159,8 +162,8 @@ fib 1 = 1
|
||||
fib 2 = 2
|
||||
fib x = fib (x - 1) + fib (x - 2)
|
||||
|
||||
-- Pattern matching on tuples:
|
||||
foo (x, y) = (x + 1, y + 2)
|
||||
-- Pattern matching on tuples, using wild card (_) to bypass naming an unused value
|
||||
sndOfTriple (_, y, _) = y
|
||||
|
||||
-- Pattern matching on lists. Here `x` is the first element
|
||||
-- in the list, and `xs` is the rest of the list. We can write
|
||||
@ -203,9 +206,9 @@ foo = (4*) . (10+)
|
||||
foo 5 -- 60
|
||||
|
||||
-- fixing precedence
|
||||
-- Haskell has an operator called `$`. This operator applies a function
|
||||
-- to a given parameter. In contrast to standard function application, which
|
||||
-- has highest possible priority of 10 and is left-associative, the `$` operator
|
||||
-- Haskell has an operator called `$`. This operator applies a function
|
||||
-- to a given parameter. In contrast to standard function application, which
|
||||
-- has highest possible priority of 10 and is left-associative, the `$` operator
|
||||
-- has priority of 0 and is right-associative. Such a low priority means that
|
||||
-- the expression on its right is applied as the parameter to the function on its left.
|
||||
|
||||
@ -223,7 +226,7 @@ even . fib $ 7 -- false
|
||||
-- 5. Type signatures
|
||||
----------------------------------------------------
|
||||
|
||||
-- Haskell has a very strong type system, and every valid expression has a type.
|
||||
-- Haskell has a very strong type system, and every valid expression has a type.
|
||||
|
||||
-- Some basic types:
|
||||
5 :: Integer
|
||||
|
Loading…
Reference in New Issue
Block a user