// LISP LIST PROGRAM BY WHITMAN KUMARESH
// any queries ->
kumareshwhitman@gmail.comimport java.io.*;
import java.lang.*;
import java.util.*;
class lisp {
String L;
DataInputStream im = new DataInputStream(System.in);
public void create() {
try {
System.out.println("Enter the String :");
L = im.readLine();
} catch (Exception e) {
System.out.println("Error...!");
}
}
public void display() {
System.out.println("The list is: " + L);
}
public void car() {
System.out.println("The first no is [car()]: " + L.substring(0, 1));
}
public void cdr() {
System.out.println("The String is [cdr()]: " + L.substring(1, L.length()));
}
public void setcdr() {
try {
System.out.println("Enter the element to set :");
String tmp1 = im.readLine();
StringBuffer sb = new StringBuffer(L);
L = new String(sb.delete(1, L.length()));
L = L + tmp1;
System.out.println("The String is [setcdr()]: " + L);
} catch (Exception e) {
System.out.println("Error...!");
}
}
public void setcar() {
try {
System.out.println("Enter the element to set :");
String tmp = im.readLine();
StringBuffer sb = new StringBuffer(L);
L = new String(sb.delete(0, 1));
L = tmp + L;
System.out.println("The String is [setcar()] :" + L);
} catch (Exception e) {
System.out.println("Error...!");
}
}
public void first_last() {
int t = L.length();
System.out.println("The String is [first_last()]: " + "First : " + L.substring(0, 1) + "\tLast :" + L.substring(t - 1, t));
}
public void nthlist() {
try {
System.out.println("Enter the value of 'n' :");
int n = Integer.parseInt(im.readLine());
System.out.println("The String is [nthlist()]: " + L.charAt(n));
} catch (Exception e) {
System.out.println("Error...!");
}
}
public void nthcdr() {
try {
System.out.println("Enter the value of 'n' :");
int n = Integer.parseInt(im.readLine());
for (int i = 1; i <= n; i++) {
System.out.println("The String is [nthcdr()]: " + L.substring(i, L.length()));
}
} catch (Exception e) {
System.out.println("Error...!");
}
}
public void cadr() {
System.out.println("The String is [cadr()] :" + L.substring(0, 1) + "" + L.substring(1, L.length()));
}
public void length() {
System.out.println("The length of L: " + L.length());
}
public void cons() {
try {
String temp;
System.out.print("Enter the element to be added to list: ");
temp = im.readLine();
L = temp + L;
System.out.println("The result of [cons()]: " + L);
} catch (Exception e) {
System.out.println("Error...!");
}
}
}
class lisplist {
public static void main(String args[]) {
lisp w = new lisp();
System.out.println("The list is: " + w.L);
try {
int n;
DataInputStream in = new DataInputStream(System.in);
whit:
{
System.out.println("\nLisp list program by Whitman for my sister Dhana...");
System.out.println("1.Create()\t2.Display()\t3.Car()\t4.Cdr()\n5.Cons()\t6.Length()\t7.Nthcdr()\t8.Setcar()\n9.Setcdr()\t10.Nthlist()\t11.First_last()\t12.Cadr()\n13.Exit");
do {
System.out.print("\nEnter your option: ");
n = Integer.parseInt(in.readLine());
switch (n) {
case 1:
w.create();
break;
case 2:
w.display();
break;
case 3:
w.car();
break;
case 4:
w.cdr();
break;
case 5:
w.cons();
break;
case 6:
w.length();
break;
case 7:
w.nthcdr();
break;
case 8:
w.setcar();
break;
case 9:
w.setcdr();
break;
case 10:
w.nthlist();
break;
case 11:
w.first_last();
break;
case 12:
w.cadr();
break;
case 13:
System.exit(0);
default:
System.out.println("Wrong input");
System.exit(0);
}
} while (n <= 13);
}
} catch (Exception e) {
System.out.println("Error...!");
}
}
}
// Enjoy...!