Skip to content

Commit

Permalink
fix dyadic pervasive function recursive cases
Browse files Browse the repository at this point in the history
  • Loading branch information
kspalaiologos committed Jun 27, 2023
1 parent 22ce2ee commit c94eabf
Show file tree
Hide file tree
Showing 4 changed files with 12 additions and 12 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -27,21 +27,21 @@ public Atom apply(Environment env, List<Atom> args) {
for(int i = 0; i < Math.min(args.get(0).getList().size(), args.get(1).getList().size()); i++) {
Atom a = args.get(0).getList().get(i);
Atom b = args.get(1).getList().get(i);
result.add(new Atom(apply(env, List.of(a, b)).getList()));
result.add(apply(env, List.of(a, b)));
}
return new Atom(result);
} else if(args.get(0).getType() == Type.LIST) {
List<Atom> result = new ArrayList<>();
for(int i = 0; i < args.get(0).getList().size(); i++) {
Atom a = args.get(0).getList().get(i);
result.add(new Atom(apply(env, List.of(a, args.get(1))).getList()));
result.add(apply(env, List.of(a, args.get(1))));
}
return new Atom(result);
} else if(args.get(1).getType() == Type.LIST) {
List<Atom> result = new ArrayList<>();
for(int i = 0; i < args.get(1).getList().size(); i++) {
Atom b = args.get(1).getList().get(i);
result.add(new Atom(apply(env, List.of(args.get(0), b)).getList()));
result.add(apply(env, List.of(args.get(0), b)));
}
return new Atom(result);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,21 +26,21 @@ public Atom apply(Environment env, List<Atom> args) {
for(int i = 0; i < Math.min(args.get(0).getList().size(), args.get(1).getList().size()); i++) {
Atom a = args.get(0).getList().get(i);
Atom b = args.get(1).getList().get(i);
result.add(new Atom(apply(env, List.of(a, b)).getList()));
result.add(apply(env, List.of(a, b)));
}
return new Atom(result);
} else if(args.get(0).getType() == Type.LIST) {
List<Atom> result = new ArrayList<>();
for(int i = 0; i < args.get(0).getList().size(); i++) {
Atom a = args.get(0).getList().get(i);
result.add(new Atom(apply(env, List.of(a, args.get(1))).getList()));
result.add(apply(env, List.of(a, args.get(1))));
}
return new Atom(result);
} else if(args.get(1).getType() == Type.LIST) {
List<Atom> result = new ArrayList<>();
for(int i = 0; i < args.get(1).getList().size(); i++) {
Atom b = args.get(1).getList().get(i);
result.add(new Atom(apply(env, List.of(args.get(0), b)).getList()));
result.add(apply(env, List.of(args.get(0), b)));
}
return new Atom(result);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,21 +26,21 @@ public Atom apply(Environment env, List<Atom> args) {
for(int i = 0; i < Math.min(args.get(0).getList().size(), args.get(1).getList().size()); i++) {
Atom a = args.get(0).getList().get(i);
Atom b = args.get(1).getList().get(i);
result.add(new Atom(apply(env, List.of(a, b)).getList()));
result.add(apply(env, List.of(a, b)));
}
return new Atom(result);
} else if(args.get(0).getType() == Type.LIST) {
List<Atom> result = new ArrayList<>();
for(int i = 0; i < args.get(0).getList().size(); i++) {
Atom a = args.get(0).getList().get(i);
result.add(new Atom(apply(env, List.of(a, args.get(1))).getList()));
result.add(apply(env, List.of(a, args.get(1))));
}
return new Atom(result);
} else if(args.get(1).getType() == Type.LIST) {
List<Atom> result = new ArrayList<>();
for(int i = 0; i < args.get(1).getList().size(); i++) {
Atom b = args.get(1).getList().get(i);
result.add(new Atom(apply(env, List.of(args.get(0), b)).getList()));
result.add(apply(env, List.of(args.get(0), b)));
}
return new Atom(result);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,21 +26,21 @@ public Atom apply(Environment env, List<Atom> args) {
for(int i = 0; i < Math.min(args.get(0).getList().size(), args.get(1).getList().size()); i++) {
Atom a = args.get(0).getList().get(i);
Atom b = args.get(1).getList().get(i);
result.add(new Atom(apply(env, List.of(a, b)).getList()));
result.add(apply(env, List.of(a, b)));
}
return new Atom(result);
} else if(args.get(0).getType() == Type.LIST) {
List<Atom> result = new ArrayList<>();
for(int i = 0; i < args.get(0).getList().size(); i++) {
Atom a = args.get(0).getList().get(i);
result.add(new Atom(apply(env, List.of(a, args.get(1))).getList()));
result.add(apply(env, List.of(a, args.get(1))));
}
return new Atom(result);
} else if(args.get(1).getType() == Type.LIST) {
List<Atom> result = new ArrayList<>();
for(int i = 0; i < args.get(1).getList().size(); i++) {
Atom b = args.get(1).getList().get(i);
result.add(new Atom(apply(env, List.of(args.get(0), b)).getList()));
result.add(apply(env, List.of(args.get(0), b)));
}
return new Atom(result);
}
Expand Down

0 comments on commit c94eabf

Please sign in to comment.