Last active
November 2, 2018 18:06
-
-
Save epost/29dd5fa6d9b62bdc5d81f46b52df1ed5 to your computer and use it in GitHub Desktop.
Rawan programmeercursus
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
module Main where | |
import Prelude | |
import Control.Monad.Eff.Console (logShow, log) | |
import Data.Tuple | |
import Data.Map (Map, lookup, singleton) | |
import TryPureScript | |
main = render =<< withConsole do | |
log "Rawan" | |
logShow (fst t1) | |
logShow (sec t1) | |
logShow (vat 100.0) | |
logShow (vat 200.0) | |
logShow (canDrink 17) | |
logShow (canDrink 21) | |
logShow (drinkyDrinky (canDrink 17)) | |
logShow (drinkyDrinky (canDrink 21)) | |
(logShow <<< drinkyDrinky <<< canDrink) 17 | |
(logShow <<< drinkyDrinky <<< canDrink) 21 | |
logShow true | |
logShow false | |
logShow (not true) | |
logShow (not false) | |
logShow (true && false) | |
logShow (true && true) | |
logShow (not false) | |
logShow (true && not true) | |
logShow (rl SweetSour) | |
logShow (rl2 Vinegar SweetSour) | |
log ("hoi Rawan: " <> show (Vinegar == Vinegar)) | |
log "--- hier komen de smaakjes weer -------------" | |
logShow (rl3 Vinegar Paprika) | |
logShow (rl3 Vinegar SweetSour) | |
logShow (rl3 SweetSour Paprika) | |
log "--- some lambda stuff -------------" | |
logShow (f1 42) -- applying a named lambda (= lambda function, anonymous function) | |
logShow ((\x -> x+1) 41) -- applying an anonymous (inline) lambda | |
logShow (f2 3 4) -- applying a named lambda taking 2 parameters | |
----------------------------------------------------------------- | |
-- the backslash (\) is meant to look like a lowercase lambda | |
f1 :: Int -> Int | |
f1 = \x -> x+1 | |
-- the backslash (\) is meant to look like a lowercase lambda | |
f2 :: Int -> Int -> Int | |
f2 = \x y -> x + y | |
----------------------------------------------------------------- | |
drinkyDrinky :: Boolean -> String | |
drinkyDrinky true = "here ye are lass!" | |
drinkyDrinky false = "feck off!" | |
drinkyDrinky' :: Boolean -> String | |
drinkyDrinky' = case _ of | |
true -> "here ye are lass!" | |
false -> "feck off!" | |
canDrink :: Int -> Boolean | |
canDrink age = age >= 18 | |
vat :: Number -> Number | |
vat x = x * 0.21 | |
data Flavour = Vinegar | Paprika | SweetSour | |
derive instance eqFalvour :: Eq Flavour | |
rl :: Flavour -> Boolean | |
rl Vinegar = true | |
rl Paprika = true | |
rl SweetSour = false | |
rl2 :: Flavour -> Flavour -> Boolean | |
rl2 Vinegar _ = true | |
rl2 Paprika _ = true | |
rl2 SweetSour _ = false | |
rl3 :: Flavour -> Flavour -> Boolean | |
--rl3 f1 f2 = rl f1 && rl f2 | |
rl3 f1 f2 = rl f1 `and` rl f2 | |
-------------------------------------------------------------------------------- | |
and :: Boolean -> Boolean -> Boolean | |
and false false = false | |
and false true = false | |
and true false = false | |
and true true = true | |
-- rl3 Paprika Paprika = true | |
-- rl3 _ _ = true | |
-- rl3 f1 f2 = if f1 == Vinegar then true else false | |
-- rl3 f1 f2 = if f1 == true else false | |
-------------------------------------------------------------------------------- | |
t1 = Tuple 'a' 3 | |
-- sec :: Tuple Char Int -> Int | |
sec :: forall a b. Tuple a b -> b | |
sec = snd |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment