Consider the function second xs = head (tail xs) What is its type? 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? 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? Why can "x" and "y" correspond to different types in general?

C++ Programming: From Problem Analysis to Program Design
8th Edition
ISBN:9781337102087
Author:D. S. Malik
Publisher:D. S. Malik
Chapter13: Overloading And Templates
Section: Chapter Questions
Problem 36SA
icon
Related questions
Question

4.

Consider the function

second xs = head (tail xs)

What is its type?

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?

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?

Why can "x" and "y" correspond to
different types in general? 

Expert Solution
trending now

Trending now

This is a popular solution!

steps

Step by step

Solved in 2 steps

Blurred answer
Knowledge Booster
Use of XOR function
Learn more about
Need a deep-dive on the concept behind this application? Look no further. Learn more about this topic, computer-science and related others by exploring similar questions and additional content below.
Similar questions
  • SEE MORE QUESTIONS
Recommended textbooks for you
C++ Programming: From Problem Analysis to Program…
C++ Programming: From Problem Analysis to Program…
Computer Science
ISBN:
9781337102087
Author:
D. S. Malik
Publisher:
Cengage Learning