Skip to content

Commit

Permalink
added info about tuples, integrated wild card use into a function def…
Browse files Browse the repository at this point in the history
…inition
  • Loading branch information
Alex Grejuc committed Jul 10, 2018
1 parent 0d211d3 commit 8c30522
Showing 1 changed file with 9 additions and 6 deletions.
15 changes: 9 additions & 6 deletions haskell.html.markdown
Original file line number Diff line number Diff line change
Expand Up @@ -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
----------------------------------------------------
Expand Down Expand Up @@ -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
Expand Down Expand Up @@ -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.

Expand All @@ -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
Expand Down

0 comments on commit 8c30522

Please sign in to comment.