Answered step by step
Verified Expert Solution
Link Copied!

Question

1 Approved Answer

Rewrite the factorial Prolog program fact (0, 1). fact (N, R) :- N> 0, N1 is N-1, fact (N1, R1), R is N. R1.

 

Rewrite the factorial Prolog program fact (0, 1). fact (N, R) :- N> 0, N1 is N-1, fact (N1, R1), R is N. R1. to make it tail recursive (see Exercise 4.17). Draw search trees of subgoals and explain Prolog's responses based on the trees for the following goals (see Figure 4.1): (a) god (15, 10, x). (b) append(X, Y, [1, 2]). = Rewrite the Prolog clauses for Euclid's algorithm (gcd) in Figure 4.1 to use the cut instead of the test not(V 0). How much does this improve the efficiency of the program? Redraw the search tree of Exercise 4.21(a) to show how the cut prunes the tree.

Step by Step Solution

3.42 Rating (149 Votes )

There are 3 Steps involved in it

Step: 1

Heres the tailrecursive version of the factorial program factN R facthelperN 1 R facthelper0 Acc Acc facthelperN Acc R N 0 Acc1 is Acc N N1 is N 1 facthelperN1 Acc1 R In this version the predicate fac... 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

Discrete and Combinatorial Mathematics An Applied Introduction

Authors: Ralph P. Grimaldi

5th edition

201726343, 978-0201726343

More Books

Students also viewed these Accounting questions