|
@@ -49,14 +49,11 @@ public class LispList{
|
|
|
* @return
|
|
|
*/
|
|
|
public Object get(int index) {
|
|
|
- if(this.list.size() <= index) {
|
|
|
+ LispList l = this.getSubList(index);
|
|
|
+ if(l == null) {
|
|
|
return null;
|
|
|
}
|
|
|
- ConsList<Object> cl = this.list;
|
|
|
- for(int i = 0; i < index; i++) {
|
|
|
- cl = cl.cdr();
|
|
|
- }
|
|
|
- return cl.car();
|
|
|
+ return l.list.car();
|
|
|
}
|
|
|
|
|
|
/**
|
|
@@ -65,7 +62,7 @@ public class LispList{
|
|
|
* @return
|
|
|
*/
|
|
|
public LispList getSubList(int index) {
|
|
|
- if(this.list.size() <= index) {
|
|
|
+ if(this.list.size() <= index || index < 0) {
|
|
|
return null;
|
|
|
}
|
|
|
ConsList<Object> cl = this.list;
|