Question
Consider a data type for logical expressions data Expr = Var String Or [Expr] And [Expr] -- A variable with given name | |
Consider a data type for logical expressions data Expr = Var String Or [Expr] And [Expr] -- A variable with given name | | | Not Expr deriving (Eq, Show) Write a function collect :: Expr -> ([String], Int), which col- lects a list of unique variable names in an expression, and the total number of times a "Not" appears. You may write helper functions if you wish. For example > expr = And [Var "a", Or [Var "a", Var "b"], Not (Var "c")] > collect expr ( ["a", "b", "c"], 1)
Step by Step Solution
There are 3 Steps involved in it
Step: 1
To implement the collect function for the Expr data type you can use a recursive approach to travers...Get Instant Access to Expert-Tailored Solutions
See step-by-step solutions with expert insights and AI powered tools for academic success
Step: 2
Step: 3
Ace Your Homework with AI
Get the answers you need in no time with our AI-driven, step-by-step assistance
Get StartedRecommended Textbook for
Programming Language Pragmatics
Authors: Michael L. Scott
4th Edition
0124104096, 978-0124104099
Students also viewed these Programming questions
Question
Answered: 1 week ago
Question
Answered: 1 week ago
Question
Answered: 1 week ago
Question
Answered: 1 week ago
Question
Answered: 1 week ago
Question
Answered: 1 week ago
Question
Answered: 1 week ago
Question
Answered: 1 week ago
Question
Answered: 1 week ago
Question
Answered: 1 week ago
Question
Answered: 1 week ago
Question
Answered: 1 week ago
Question
Answered: 1 week ago
Question
Answered: 1 week ago
Question
Answered: 1 week ago
Question
Answered: 1 week ago
Question
Answered: 1 week ago
Question
Answered: 1 week ago
Question
Answered: 1 week ago
Question
Answered: 1 week ago
Question
Answered: 1 week ago
View Answer in SolutionInn App