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?
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
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
This question has been solved!
Explore an expertly crafted, step-by-step solution for a thorough understanding of key concepts.
This is a popular solution!
Trending now
This is a popular solution!
Step by step
Solved in 2 steps
Knowledge Booster
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.Recommended textbooks for you
C++ Programming: From Problem Analysis to Program…
Computer Science
ISBN:
9781337102087
Author:
D. S. Malik
Publisher:
Cengage Learning
C++ Programming: From Problem Analysis to Program…
Computer Science
ISBN:
9781337102087
Author:
D. S. Malik
Publisher:
Cengage Learning