Answered step by step
Verified Expert Solution
Link Copied!

Question

1 Approved Answer

Haskell 1. Consider the function f (x:xs) = x What is its type? (5 points). Note: that type has a formal meaning in Haskell, that

Haskell

1.

Consider the function

f (x:xs) = x

What is its type? (5 points). Note: that "type" has a formal meaning in Haskell, that is, there is only one correct (and very precise) answer

Which (standard prelude) library function does "f" correspond to? (5 points)

Hint: put the definition of "f" into a Haskell script and then run it with GHCi to see how it behaves, and check the type with the ":type" command

2.

Consider the function

g [] = 0 g (x:xs) = 1 + g xs

What is its type? (5 points). Which library function does "g" correspond to? (5 points)

3.

Consider the function

h x 0 = 1 h x n = x * h x (n-1)

What is its type? (5 points). Which library function does "h" correspond to? (5 points)

4.

Consider the function

second xs = head (tail xs)

What is its type? (5 points)

Explain why "second" has the type that it has, i.e., "tail :: [a] -> [a]", hence "xs :: [a]", and "head :: [a] -> a", etc. Why does chaining them together like in the definition of "second" give us the type that it has? (5 points)

Note: this will use the fact that if "f" is a function that maps arguments of type "a" to results of type "b", and "e" is an expression of type "a", then the application "f e" has type "b", that is:

if "f :: a -> b" and "e :: a" then "f e :: b"

5.

Consider the function

swap (x,y) = (y,x)

What is its type? (5 points). Why can "x" and "y" correspond to different types in general? (5 points)

Step by Step Solution

There are 3 Steps involved in it

Step: 1

blur-text-image

Get Instant Access to Expert-Tailored Solutions

See step-by-step solutions with expert insights and AI powered tools for academic success

Step: 2

blur-text-image

Step: 3

blur-text-image

Ace Your Homework with AI

Get the answers you need in no time with our AI-driven, step-by-step assistance

Get Started

Recommended Textbook for

Advances In Databases 28th British National Conference On Databases Bncod 28 Manchester Uk July 2011 Revised Selected Papers Lncs 7051

Authors: Alvaro A.A. Fernandes ,Alasdair J.G. Gray ,Khalid Belhajjame

2011th Edition

3642245765, 978-3642245763

More Books

Students also viewed these Databases questions

Question

Prove Formulas 9.

Answered: 1 week ago

Question

What will be the output of the following code?print ( range ( 5 ) )

Answered: 1 week ago