FP Laboratory 3

From Marek Běhálek Wiki
Revision as of 08:39, 24 September 2020 by Beh01 (talk | contribs)
Jump to navigation Jump to search

Usage of lists

Find out the results of the following operations:

[3,2,1] > [2,1,0]  
[3,2,1] > [2,10,100]  
[3,4,2] > [3,4]  
[3,4,2] > [2,4]  
[3,4,2] == [3,4,2]

Simple functions working with list

Implement following functions:

  • Create a function that computes length of a list.
length' :: [a] -> Int
length' :: [a] -> Int
length' []  = 0
length' (_:xs) = 1 + length' xs
  • Create a function that sums the list of integers.
sumIt :: [Int] -> Int
sumIt :: [Int] -> Int
sumIt []  = 0
sumIt (x:xs) = x + sumIt xs
  • Create a function that returns the first element in the list.
getHead :: [a] -> a
getHead :: [a] -> a
getHead (x:_) = x
  • Create a function that returns the last element in the list.
getLast :: [a] -> a
getLast :: [a] -> a
getLast (x:xs) | length xs == 0 = x
               | otherwise = getLast xs
  • Create a function that checks if an element is a member of the list.
isElement :: Eq a => a -> [a] -> Bool
  • Create a function that returns the list without the first element.
getTail :: [a] -> [a]
  • Create a function that returns the list without the last element.
getInit :: [a] -> [a]
  • Create a function that merge two lists into one list.
combine :: [a] -> [a] -> [a]
  • Create a function that finds the maximum in the list of integers.
max' :: [Int] -> Int
  • Create a function that reverse a list.
reverse' :: [a] -> [a]
  • Create a function that product scalar multiplication if two vectors.
scalar :: [Int] -> [Int] -> Int