Question
Recall that lists are defined inductively by the following BNF equation: L ::= []|a:L where a ranges over objects of the type held by the
Recall that lists are defined inductively by the following BNF equation: L ::= []|a:L where a ranges over objects of the type held by the list. That is, a list is either the empty list [ ] or it consists of an element a added to the front of a smaller list L, denoted by a : L. (a) Give an inductive definition of the function rev which takes a list and returns its reverse. Thus, for example, rev [4, 3, 7] = [7, 3, 4]. In your definition, you can use the append function L1++L2 which apends two lists L1 and L2, and the fact that the append operation is associative: L1++(L2++L3) = (L1++L2)++L3. (b) Use your definition to step-by-step compute rev [4, 3, 7] .
Step by Step Solution
There are 3 Steps involved in it
Step: 1
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 Started