-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathHigherOrderFunctions.hs
35 lines (27 loc) · 1.42 KB
/
HigherOrderFunctions.hs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
-- Higher order functions
-- Copilot sier:
-- "Higher order functions are functions that take other functions as arguments or return functions as their results."
module HigherOrderFunctions where
import Currency
import Transaction
import PureFunctions
-- OPPGAVE 2.1: Lag en funksjon som tar inn en valuta og en liste med transaksjoner
-- og filtrerer vekk alle andre transaksjoner enn de med den gitte valutaen.
--
-- Hint: Her får du isCurrency funksjonen fra oppgave 1.2 importert.
filterByCurrency :: Currency -> [Transaction] -> [Transaction]
filterByCurrency c t = []
-- OPPGAVE 2.2: Lag en funksjon som filtrerer vekk transaksjoner som ikke benytter valutaen NOK, og returnerer en liste med produkter.
productsBoughtWithNOK :: [Transaction] -> [Product]
productsBoughtWithNOK t = []
-- OPPGAVE 2.3: Denne funksjonen mottar et parameter som er en funksjon. Du skal da implementere
-- en funksjon som filtrerer transaksjonene basert på filterfunksjonen som blir sendt inn.
--
-- Hint: Se på testen :)
filterTransactionsByProduct :: [Transaction] -> (Transaction -> Bool) -> [Transaction]
filterTransactionsByProduct t isRelevantTransaction = []
-- OPPGAVE 2.4: Lag en funksjon som returnerer en funksjon som filtrerer en gitt transaksjon basert på valuta-parameteret.
-- Gir også lite mening i Haskell og er derfor løst
type CurrencyFilter = Transaction -> Bool
currencyFilter :: Currency -> CurrencyFilter
currencyFilter = isCurrency