What trivial change can Louis make to his code for smaller that will disable tail recursion in Java?

1 ]=> (louis-sort test-list <)

;The object (), passed as an argument to safe-car, is not a pair.
;To continue, call RESTART with an option number:
; (RESTART 1) => Return to read-eval-print level 1.

2 error> (debug)

There are more than 50 subproblems on the stack.

Subproblem level: 0 (this is the lowest subproblem level)
Expression (from stack):
(predicate (car list) ###)
subproblem being executed (marked by ###):
(cadr list)
Environment created by the procedure: SMALLEST

applied to: ((0) #[arity-dispatched-procedure 39])
The execution history for this subproblem contains 1 reduction.
You are now in the debugger. Type q to quit, ? for commands.

3 debug> H
H
SL# Procedure-name Expression

0 smallest (predicate (car list) (cadr list))
1 smallest (if (predicate (car list) (cadr list)) (smalle ...
2 smallest (let ((answer (if (predicate (car list) (cadr ...
3 smallest (let ((answer (if (predicate (car list) (cadr ...
4 smallest (let ((answer (if (predicate (car list) (cadr ...
5 smallest (let ((answer (if (predicate (car list) (cadr ...
6 smallest (let ((answer (if (predicate (car list) (cadr ...
7 smallest (let ((answer (if (predicate (car list) (cadr ...
8 smallest (let ((answer (if (predicate (car list) (cadr ...
9 smallest (let ((answer (if (predicate (car list) (cadr ...
10 smallest (let ((answer (if (predicate (car list) (cadr ...
11 smallest (let ((answer (if (predicate (car list) (cadr ...
12 smallest (let ((answer (if (predicate (car list) (cadr ...
13 smallest (let ((answer (if (predicate (car list) (cadr ...
14 smallest (let ((answer (if (predicate (car list) (cadr ...
15 smallest (let ((answer (if (predicate (car list) (cadr ...
16 smallest (let ((answer (if (predicate (car list) (cadr ...
17 smallest (let ((answer (if (predicate (car list) (cadr ...
18 smallest (let ((answer (if (predicate (car list) (cadr ...
19 smallest (let ((answer (if (predicate (car list) (cadr ...
20 smallest (let ((answer (if (predicate (car list) (cadr ...
21 smallest (let ((answer (if (predicate (car list) (cadr ...
22 smallest (let ((answer (if (predicate (car list) (cadr ...
23 smallest (let ((answer (if (predicate (car list) (cadr ...
24 smallest (let ((answer (if (predicate (car list) (cadr ...
25 smallest (let ((answer (if (predicate (car list) (cadr ...
26 smallest (let ((answer (if (predicate (car list) (cadr ...
27 smallest (let ((answer (if (predicate (car list) (cadr ...
28 smallest (let ((answer (if (predicate (car list) (cadr ...
29 smallest (let ((answer (if (predicate (car list) (cadr ...
30 smallest (let ((answer (if (predicate (car list) (cadr ...
31 smallest (let ((answer (if (predicate (car list) (cadr ...
32 smallest (let ((answer (if (predicate (car list) (cadr ...
33 smallest (let ((answer (if (predicate (car list) (cadr ...
34 smallest (let ((answer (if (predicate (car list) (cadr ...
35 smallest (let ((answer (if (predicate (car list) (cadr ...
36 smallest (let ((answer (if (predicate (car list) (cadr ...
37 smallest (let ((answer (if (predicate (car list) (cadr ...
38 smallest (let ((answer (if (predicate (car list) (cadr ...
39 smallest (let ((answer (if (predicate (car list) (cadr ...
40 smallest (let ((answer (if (predicate (car list) (cadr ...
41 smallest (let ((answer (if (predicate (car list) (cadr ...
42 smallest (let ((answer (if (predicate (car list) (cadr ...
43 smallest (let ((answer (if (predicate (car list) (cadr ...
44 smallest (let ((answer (if (predicate (car list) (cadr ...
45 smallest (let ((answer (if (predicate (car list) (cadr ...
46 smallest (let ((answer (if (predicate (car list) (cadr ...
47 smallest (let ((answer (if (predicate (car list) (cadr ...
48 smallest (let ((answer (if (predicate (car list) (cadr ...
49 smallest (let ((answer (if (predicate (car list) (cadr ...
50 smallest (let ((answer (if (predicate (car list) (cadr ...
51 smallest (let ((answer (if (predicate (car list) (cadr ...
52 smallest (let ((answer (if (predicate (car list) (cadr ...
53 smallest (let ((answer (if (predicate (car list) (cadr ...
54 smallest (let ((answer (if (predicate (car list) (cadr ...
55 smallest (let ((answer (if (predicate (car list) (cadr ...
56 smallest (let ((answer (if (predicate (car list) (cadr ...
57 smallest (let ((answer (if (predicate (car list) (cadr ...
58 smallest (let ((answer (if (predicate (car list) (cadr ...
59 smallest (let ((answer (if (predicate (car list) (cadr ...
60 smallest (let ((answer (if (predicate (car list) (cadr ...
61 smallest (let ((answer (if (predicate (car list) (cadr ...
62 smallest (let ((answer (if (predicate (car list) (cadr ...
63 smallest (let ((answer (if (predicate (car list) (cadr ...
64 smallest (let ((answer (if (predicate (car list) (cadr ...
65 smallest (let ((answer (if (predicate (car list) (cadr ...
66 smallest (let ((answer (if (predicate (car list) (cadr ...
67 smallest (let ((answer (if (predicate (car list) (cadr ...
68 smallest (let ((answer (if (predicate (car list) (cadr ...
69 smallest (let ((answer (if (predicate (car list) (cadr ...
70 smallest (let ((answer (if (predicate (car list) (cadr ...
71 smallest (let ((answer (if (predicate (car list) (cadr ...
72 smallest (let ((answer (if (predicate (car list) (cadr ...
73 smallest (let ((answer (if (predicate (car list) (cadr ...
74 smallest (let ((answer (if (predicate (car list) (cadr ...
75 smallest (let ((answer (if (predicate (car list) (cadr ...
76 smallest (let ((answer (if (predicate (car list) (cadr ...
77 smallest (let ((answer (if (predicate (car list) (cadr ...
78 smallest (let ((answer (if (predicate (car list) (cadr ...
79 smallest (let ((answer (if (predicate (car list) (cadr ...
80 smallest (let ((answer (if (predicate (car list) (cadr ...
81 smallest (let ((answer (if (predicate (car list) (cadr ...
82 smallest (let ((answer (if (predicate (car list) (cadr ...
83 smallest (let ((answer (if (predicate (car list) (cadr ...
84 smallest (let ((answer (if (predicate (car list) (cadr ...
85 smallest (let ((answer (if (predicate (car list) (cadr ...
86 smallest (let ((answer (if (predicate (car list) (cadr ...
87 smallest (let ((answer (if (predicate (car list) (cadr ...
88 smallest (let ((answer (if (predicate (car list) (cadr ...
89 smallest (let ((answer (if (predicate (car list) (cadr ...
90 smallest (let ((answer (if (predicate (car list) (cadr ...
91 smallest (let ((answer (if (predicate (car list) (cadr ...
92 smallest (let ((answer (if (predicate (car list) (cadr ...
93 smallest (let ((answer (if (predicate (car list) (cadr ...
94 smallest (let ((answer (if (predicate (car list) (cadr ...
95 smallest (let ((answer (if (predicate (car list) (cadr ...
96 smallest (let ((answer (if (predicate (car list) (cadr ...
97 smallest (let ((answer (if (predicate (car list) (cadr ...
98 smallest (let ((answer (if (predicate (car list) (cadr ...
99 smallest (let ((answer (if (predicate (car list) (cadr ...
100 smallest (let ((answer (if (predicate (car list) (cadr ...
101 smallest (let ((answer (if (predicate (car list) (cadr ...
102 do-loop (cons (smallest remainder predicate) (quote ()))
103 do-loop (append answer (cons (smallest remainder predi ...
104 do-loop (do-loop (cdr remainder) (append answer (cons ...
105 %repl-eval (let ((value (hook/repl-eval s-expression envi ...
106 %repl-eval/write (hook/repl-write (%repl-eval s-expression envi ...
107 do-loop (begin (if (queue-empty? queue) (let ((environ ...
108 loop (loop (bind-abort-restart cmdl (lambda () (der ...

program that returns 1 if run on a any tail-recursive implementation of a language, but returns 0 if run on a any non tail-recursive implementation of

program that returns 1 if run on a any tail-recursive implementation of a language, but returns 0 if run on a any non tail-recursive implementation of that same language. The goal is not to find a program and language implementation pair that exhibit the behavior, but to design a program that can correctly infer whether on not any supplied language implementation supports tail recursion by examining its own behavior.


(define (smallest list predicate)
;; Returns the smallest element of list.
(if (null? list)
#f
(if (predicate (car list) (cadr list))
(smallest (cons (car list) (cddr list)) predicate)
(smallest (cdr list) predicate))))

(define (louis-sort list predicate)
(do ((remainder list (cdr remainder))
(answer '() (append answer (cons (smallest remainder predicate) '()))))
((null? remainder) answer)))

(define test-list
(do ((i 0 (+ i 1))
(answer '() (cons i answer)))
((>= i 100) answer)))

program that crashes or doesn't return if run on a any tail-recursive implementation of a language, but returns 0 if run on a any non tail-recursive

program that crashes or doesn't return if run on a any tail-recursive implementation of a language, but returns 0 if run on a any non tail-recursive implementation of that same language. The goal is not to find a program and language implementation pair that exhibit the behavior, but to design a program that can correctly infer that any supplied implementation does not support tail recursion (this is a weaker condition because we do not require that the program correctly infer support of tail recursion, but only lack of support).


(define (smallest list predicate)
;; Returns the smallest element of list.
(if (null? list)
#f
(if (predicate (car list) (cadr list))
(smallest (cons (car list) (cddr list)) predicate)
(smallest (cdr list) predicate))))

(define (louis-sort list predicate)
(do ((remainder list (cdr remainder))
(answer '() (append answer (cons (smallest remainder predicate) '()))))
((null? remainder) answer)))

(define test-list
(do ((i 0 (+ i 1))
(answer '() (cons i answer)))
((>= i 100) answer)))

Program to show the use of Labeled Break Statement in Java

publicclass JAVA_034
{

publicstaticvoid main(String[] args)
{
int nValues=50;

System.out.println("The Prime Numbers from 1 to 50 are : ");

OuterLoop:

for(int i=1;i<=nValues;i++)
{
for(int j=2;j
{
if((i%j)==0)
break OuterLoop;
}

System.out.println(i);
}

System.out.println("The rest of the Loop iterations were skipped as 4 is not a Prime Number");
}
}

Program to sort the contents of an array using Bubble Sort in Java

publicclass JAVA_037
{


publicstaticvoid main(String[] args)
{
int[] array={10,-1,28,13,44,5,36,97,-18,11};

System.out.println(" The contents of the Array in original order are :");

for(int i=0;i
System.out.println("\t\t\t\t\t Array[" + i + "] = " + array[i]);

for(int j=0;j<(array.length-1);j++)
{
for(int k=0;k<(array.length-1);k++)
{
if(array[k]>array[(k+1)])
{
int temp=array[k];

array[k]=array[(k+1)];
array[(k+1)]=temp;
}
}
}

System.out.println("\n The contents of the Array after sorting are :");

for(int l=0;l
System.out.println("\t\t\t\t\t Array[" + l + "] = " + array[l]);
}
}

Program to search an element in an array using Linear Search in Java

publicclass JAVA_038
{


publicstaticvoid main(String[] args)
{
int[] array={10,-1,28,13,44,5,36,97,-18,11};

System.out.println(" The contents of the Array are :");

for(int i=0;i
System.out.println("\t\t\t\t\t Array[" + i + "] = " + array[i]);

int search_element=44;
int find_index=-1;

for(int j=0;j<(array.length-1);j++)
{
if(array[j]==search_element)
{
find_index=j;

break;
}
}

if(find_index!=-1)
{
System.out.println(" The search element is : " + search_element);
System.out.println(" It is found in the array at position : " + find_index);
}

else
System.out.println("\n The search element is not found in the array.");
}
}

Program to declare, initialize and print an array of characters in Java

publicclass JAVA_039
{


publicstaticvoid main(String[] args)
{
char[] Vowels={'a','e','i','o','u'};

System.out.println(" The contents of the Character Array - 2Vowels are :");

for(int i=0;iout.println("\t\t\t\t\t Vowels[" + i + "] = " + Vowels[i]);
}
}

Program to declare, initialize and print a 2D array of integers in Java

publicclass JAVA_040
{

publicstaticvoid main(String[] args)
{
int[][] array={ {10,-1,28,13,44} , {5,36,97,-18,11} };

System.out.println("The contents of the 2D Array are : \n");

for(int i=0;iout.println("Dimension # " + (i+1));

for(int j=0;jout.println("\t Array[" + i + "][" + j + "] = " + array[i][j]);
}
}
}

Multi dimensional array declare initialize and display multi dimensional array in Java

// Declaration of allocating memory to multi dimensional array
int iarr[][] = new int[2][3];

// Initializing elements
iarr[0][0] = 1;
iarr[0][1] = 2;
iarr[0][2] = 3;
iarr[1][0] = 4;
iarr[1][1] = 5;
iarr[1][2] = 6;

//Display array elements
System.out.println(iarr[0][0]);
System.out.println(iarr[0][1]);
System.out.println(iarr[0][2]);
System.out.println(iarr[1][0]);
System.out.println(iarr[1][1]);
System.out.println(iarr[1][2]);

// Or Use for loop to display elements
for (int i = 0; i < iarr.length; i = i + 1)
{
for(int j=0; j < iarr[i].length; j = j + 1)
{
System.out.print(iarr[i][j]);
System.out.print(" ");
}
}

Program to show an example of using a Static Nested Class in Java

publicclass JAVA_071
{

publicstaticvoid main(String[] args)
{
System.
out.println(new MagicHat("Gray Topper"));
System.
out.println(new MagicHat("Black Topper"));
System.
out.println(new MagicHat("Baseball Topper"));
}
}

One dimensional array shows how to declare initialize and display an array.


// Declaration of allocating memory to an array
int iarr[] = new int[3];

// Initializing elements
iarr[0] = 1;
iarr[1] = 2;
iarr[2] = 3;

//Display array elements
System.out.println(iarr[0]);
System.out.println(iarr[1]);
System.out.println(iarr[2]);

// Or Use for loop to display elements
for (int i = 0; i < iarr.length; i = i + 1)
{
System.out.print(iarr[i]);
System.out.print(" ");
}

Corba program of date operations in Java

module GetDateModule
{
interface GetDate
{
string get_date();
longlong get_time();
};

};


// GetDateImpl// Contains the implementation of the methods defined in the IDL file.

import GetDateModule.GetDatePOA;
import java.lang.String;
import java.util.Date;

class GetDateImpl extends GetDatePOA
{
Date dt=new Date();

GetDateImpl()
{
super();
System.out.println("Encriptor Object Created");
}

public String get_date()
{
String time=dt.toString();
return (time);
}

publiclong get_time()
{
return(dt.getTime());
}
}


// Server


import GetDateModule.GetDate;
import org.omg.CosNaming.*;
import org.omg.CosNaming.NamingContextPackage.*;
import org.omg.CORBA.*;
import org.omg.PortableServer.*;

class GetDateServer
{

publicstaticvoid main(String[] args)
{
try
{
// initialize the ORB
org.omg.CORBA.ORB orb = org.omg.CORBA.ORB.init(args,null);

// initialize the BOA/POA
POA rootPOA = POAHelper.narrow(orb.resolve_initial_references("RootPOA"));
rootPOA.the_POAManager().activate();

// creating the GetDate object
GetDateImpl GetDate = new GetDateImpl();

// get the object reference from the servant class
org.omg.CORBA.Object ref = rootPOA.servant_to_reference(GetDate);

System.out.println("Step1");
GetDate h_ref = GetDateModule.GetDateHelper.narrow(ref);
System.out.println("Step2");

org.omg.CORBA.Object objRef =orb.resolve_initial_references("NameService");

System.out.println("Step3");
NamingContextExt ncRef = NamingContextExtHelper.narrow(objRef);
System.out.println("Step4");

String name = "GetDate";
NameComponent path[] = ncRef.to_name(name);
ncRef.rebind(path,h_ref);

System.out.println("GetDate Server reading and waiting....");
orb.run();


}
catch(Exception e)
{
e.printStackTrace();
}
}
}


// Client

import GetDateModule.*;
import org.omg.CosNaming.*;
import org.omg.CosNaming.NamingContextPackage.*;
import org.omg.CORBA.*;
import java.io.*;
import java.lang.String;
import java.util.Date;

class GetDateClient
{

publicstaticvoid main(String args[])
{
GetDate GetDateImpl=null;
int i;
try
{
// initialize the ORB
org.omg.CORBA.ORB orb = org.omg.CORBA.ORB.init(args,null);

org.omg.CORBA.Object objRef = orb.resolve_initial_references("NameService");
NamingContextExt ncRef = NamingContextExtHelper.narrow(objRef);

String name = "GetDate";
GetDateImpl = GetDateHelper.narrow(ncRef.resolve_str(name));

Date dt=new Date();
long clientTime=dt.getTime();
System.out.println("Client Date and Time="+dt);

String serverDate=(String) GetDateImpl.get_date();

long serverTime=(long) GetDateImpl.get_time();
System.out.println("Server Date and Time="+serverDate);

System.out.println("Time Difference in Server and Client(in millisecond)="+(clientTime-serverTime));

}
catch(Exception e)
{
e.printStackTrace();
}
}
}

We Are Founder..