class CharListF implements CharList { // A very inefficient implementation of CharList private InnerList content; public static final int MAX=100; private CharListF(InnerList L) { content=L; } public char head() { return content.array[content.size-1]; } public CharList tail() { InnerList L = new InnerList(content.size-1,content.array); return new CharListF(L); } public CharList cons(char ch) { char[] a = (char[]) content.array.clone(); a[content.size]=ch; InnerList L = new InnerList(content.size+1,a); return new CharListF(L); } public static CharList empty() { InnerList L = new InnerList(0,new char[MAX]); return new CharListF(L); } public boolean isempty() { return (content.size==0); } private static class InnerList { int size; char[] array; InnerList(int n,char[] a) { size=n; array=a; } } }