Problem 6 Note that we can actually infer the type of an texpr. If we see (x, IntLit (8)),we know x shoul an Int. So now write a similar function infer which overwrites any incorrect types. val infer: texpr -> texpr Note: • if an empty list is encountered, raise (Failure "empty list") • if a list has inconsistent types, raise (Failure "inconsistent") • list order is preserved

Computer Networking: A Top-Down Approach (7th Edition)
7th Edition
ISBN:9780133594140
Author:James Kurose, Keith Ross
Publisher:James Kurose, Keith Ross
Chapter1: Computer Networks And The Internet
Section: Chapter Questions
Problem R1RQ: What is the difference between a host and an end system? List several different types of end...
icon
Related questions
Question
Problem 6
Note that we can actually infer the type of an texpr. If we see (x, IntLit (8)),we know x should be
an Int. So now write a similar function infer which overwrites any incorrect types.
val infer: texpr -> texpr
Note:
• if an empty list is encountered, raise (Failure "empty list")
• if a list has inconsistent types, raise (Failure "inconsistent")
• list order is preserved
negExample from Problem 5 should be inconsistent.
let infExample =
(List Int,
Seq
[ (Int, Seq [(Bool, BoolLit false); (Bool, Boollit true)]);
(Bool, Seq [(Int, Boollit true)]) ])
in
infer infExample
evaluates to
(List (List Bool),
Seq
[ (List Bool, Seq [(Bool, Boollit false); (Bool, Boollit true)]);
(List Bool, Seq [(Bool, Boollit true)]) ])
Transcribed Image Text:Problem 6 Note that we can actually infer the type of an texpr. If we see (x, IntLit (8)),we know x should be an Int. So now write a similar function infer which overwrites any incorrect types. val infer: texpr -> texpr Note: • if an empty list is encountered, raise (Failure "empty list") • if a list has inconsistent types, raise (Failure "inconsistent") • list order is preserved negExample from Problem 5 should be inconsistent. let infExample = (List Int, Seq [ (Int, Seq [(Bool, BoolLit false); (Bool, Boollit true)]); (Bool, Seq [(Int, Boollit true)]) ]) in infer infExample evaluates to (List (List Bool), Seq [ (List Bool, Seq [(Bool, Boollit false); (Bool, Boollit true)]); (List Bool, Seq [(Bool, Boollit true)]) ])
Expert Solution
trending now

Trending now

This is a popular solution!

steps

Step by step

Solved in 2 steps

Blurred answer
Recommended textbooks for you
Computer Networking: A Top-Down Approach (7th Edi…
Computer Networking: A Top-Down Approach (7th Edi…
Computer Engineering
ISBN:
9780133594140
Author:
James Kurose, Keith Ross
Publisher:
PEARSON
Computer Organization and Design MIPS Edition, Fi…
Computer Organization and Design MIPS Edition, Fi…
Computer Engineering
ISBN:
9780124077263
Author:
David A. Patterson, John L. Hennessy
Publisher:
Elsevier Science
Network+ Guide to Networks (MindTap Course List)
Network+ Guide to Networks (MindTap Course List)
Computer Engineering
ISBN:
9781337569330
Author:
Jill West, Tamara Dean, Jean Andrews
Publisher:
Cengage Learning
Concepts of Database Management
Concepts of Database Management
Computer Engineering
ISBN:
9781337093422
Author:
Joy L. Starks, Philip J. Pratt, Mary Z. Last
Publisher:
Cengage Learning
Prelude to Programming
Prelude to Programming
Computer Engineering
ISBN:
9780133750423
Author:
VENIT, Stewart
Publisher:
Pearson Education
Sc Business Data Communications and Networking, T…
Sc Business Data Communications and Networking, T…
Computer Engineering
ISBN:
9781119368830
Author:
FITZGERALD
Publisher:
WILEY