Answered step by step
Verified Expert Solution
Link Copied!

Question

1 Approved Answer

Resolve using the Haskell programming language. For this section, put your answers in trees.ml . IMPORTANT: In this part, you may not use recursion unless

Resolve using the Haskell programming language.

image text in transcribed

For this section, put your answers in trees.ml . IMPORTANT: In this part, you may not use recursion unless otherwise specified. Higher-order functions aren't just for lists! Recall the algebraic data type of binary trees from lecture: typeatree=LeafNodeofaatree*atree In this section, you'll implement and use higher-order functions over trees. As an example, we implemented the function tree_fold : ' a tree 'b ( ' a> 'b 'b ' b b that folds over trees like folds over lists. For example, \[ \text { tree_fold (Node (v1, Node (v2, Leaf, Leaf), Leaf)) u } f \] is fv1(fv2u)u. Note that our implementation isn't tail-recursive. The Cornell book (linked from the course website) gives a tailrecursive version. 1. Implement the function tree_map : 'a tree ( ' a> 'b) 'b tree that returns a tree with the same structure as the original tree, but with the given function applied to every node. Use tree_fold. Do not use recursion. There are various ways of traversing a tree to flatten it. Consider the tree below. An in-order traversal goes down the left subtree of a node first, then visits the node itself, then the right subtree. A inorder traversal of the above tree would visit nodes in the order 4, 2, 5, 1,3. You can think of this as basically visiting the nodes left-to-right as they're drawn on the page. A pre-order traversal visits the node itself, then the left subtree, then the right subtree. A pre-order traversal of the above tree visits the nodes in the order 1,2,4,5,3. 2. Implement the function inorder : ' ' tree ' ' list that lists the nodes of a tree in the order given by inorder traversal. (So, applied to the above tree would give [4;2;5;1;3]. Use tree_fold. Do not use recursion. 3. Implement the function preorder : 'a tree ' a list that lists the nodes of a tree in the order given by an pre-order traversal. (So, applied to the above tree would give [1;2;4;5;3].) Use tree_fold. Do not use recursion

Step by Step Solution

There are 3 Steps involved in it

Step: 1

blur-text-image

Get Instant Access to Expert-Tailored Solutions

See step-by-step solutions with expert insights and AI powered tools for academic success

Step: 2

blur-text-image

Step: 3

blur-text-image

Ace Your Homework with AI

Get the answers you need in no time with our AI-driven, step-by-step assistance

Get Started

Recommended Textbook for

Object Databases The Essentials

Authors: Mary E. S. Loomis

1st Edition

020156341X, 978-0201563412

More Books

Students also viewed these Databases questions