summaryrefslogtreecommitdiffstats
path: root/cpp/sca/modules/eval
diff options
context:
space:
mode:
Diffstat (limited to 'cpp/sca/modules/eval')
-rw-r--r--cpp/sca/modules/eval/environment.hpp10
-rw-r--r--cpp/sca/modules/eval/eval.hpp12
-rw-r--r--cpp/sca/modules/eval/primitive.hpp6
-rw-r--r--cpp/sca/modules/eval/read.hpp2
4 files changed, 15 insertions, 15 deletions
diff --git a/cpp/sca/modules/eval/environment.hpp b/cpp/sca/modules/eval/environment.hpp
index 4abf558cfa..671175b96d 100644
--- a/cpp/sca/modules/eval/environment.hpp
+++ b/cpp/sca/modules/eval/environment.hpp
@@ -80,16 +80,16 @@ const bool isDotVariable(const value& var) {
}
const Frame makeBinding(const Frame& frameSoFar, const list<value>& variables, const list<value> values) {
- if (variables == list<value>()) {
- if (values != list<value>())
+ if (isNil(variables)) {
+ if (!isNil(values))
std::cout << "Too many arguments supplied " << values << "\n";
return frameSoFar;
}
if (isDotVariable(car(variables)))
return makeBinding(frameSoFar, cdr(variables), makeList<value>(values));
- if (values == list<value>()) {
- if (variables != list<value>())
+ if (isNil(values)) {
+ if (!isNil(variables))
std::cout << "Too few arguments supplied " << variables << "\n";
return frameSoFar;
}
@@ -158,7 +158,7 @@ const Env setupEnvironment() {
const value lookupEnvLoop(const value& var, const Env& env);
const value lookupEnvScan(const value& var, const list<value>& vars, const list<value>& vals, const Env& env) {
- if(vars == list<value> ())
+ if(isNil(vars))
return lookupEnvLoop(var, enclosingEnvironment(env));
if(var == car(vars))
return car(vals);
diff --git a/cpp/sca/modules/eval/eval.hpp b/cpp/sca/modules/eval/eval.hpp
index 783f5c6447..0f6ef77904 100644
--- a/cpp/sca/modules/eval/eval.hpp
+++ b/cpp/sca/modules/eval/eval.hpp
@@ -87,7 +87,7 @@ const list<value> operands(const value& exp) {
}
const list<value> listOfValues(const list<value> exps, Env& env) {
- if(exps == list<value> ())
+ if(isNil(exps))
return list<value> ();
return cons(eval(car(exps), env), listOfValues(cdr(exps), env));
}
@@ -117,7 +117,7 @@ const Env procedureEnvironment(const value& exp) {
}
const bool isLastExp(const list<value>& seq) {
- return cdr(seq) == list<value> ();
+ return isNil(cdr(seq));
}
const value firstExp(const list<value>& seq) {
@@ -151,7 +151,7 @@ const value applyProcedure(const value& procedure, list<value>& arguments) {
}
const value sequenceToExp(const list<value> exps) {
- if(exps == list<value> ())
+ if(isNil(exps))
return list<value>();
if(isLastExp(exps))
return firstExp(exps);
@@ -179,7 +179,7 @@ const value ifConsequent(const value& exp) {
}
const value ifAlternative(const value& exp) {
- if(cdr(cdr(cdr((list<value> )exp))) != list<value> ())
+ if(!isNil(cdr(cdr(cdr((list<value> )exp)))))
return car(cdr(cdr(cdr((list<value> )exp))));
return false;
}
@@ -201,12 +201,12 @@ const value makeIf(value predicate, value consequent, value alternative) {
}
const value expandClauses(const list<value>& clauses) {
- if(clauses == list<value> ())
+ if(isNil(clauses))
return false;
const value first = car(clauses);
const list<value> rest = cdr(clauses);
if(isCondElseClause(first)) {
- if(rest == list<value> ())
+ if(isNil(rest))
return sequenceToExp(condActions(first));
std::cout << "else clause isn't last " << clauses << "\n";
return value();
diff --git a/cpp/sca/modules/eval/primitive.hpp b/cpp/sca/modules/eval/primitive.hpp
index c31f276e2f..ece89e077d 100644
--- a/cpp/sca/modules/eval/primitive.hpp
+++ b/cpp/sca/modules/eval/primitive.hpp
@@ -70,13 +70,13 @@ const value valueEqual(list<value>& args) {
}
const value valueAdd(list<value>& args) {
- if (cdr(args) == list<value>())
+ if (isNil(cdr(args)))
return (double)car(args);
return (double)car(args) + (double)cadr(args);
}
const value valueSub(list<value>& args) {
- if (cdr(args) == list<value>())
+ if (isNil(cdr(args)))
return (double)0 - (double)car(args);
return (double)car(args) - (double)cadr(args);
}
@@ -95,7 +95,7 @@ const value valueDisplay(list<value>& args) {
}
const value valueComment(list<value>& args) {
- *evalOut << "# " << car(args);
+ *evalOut << "; " << car(args);
return true;
}
diff --git a/cpp/sca/modules/eval/read.hpp b/cpp/sca/modules/eval/read.hpp
index a6e581c416..9266498d99 100644
--- a/cpp/sca/modules/eval/read.hpp
+++ b/cpp/sca/modules/eval/read.hpp
@@ -134,7 +134,7 @@ const list<value> readList(const list<value>& listSoFar, std::istream& in) {
}
const std::string listToString(const list<char>& l) {
- if(l == list<char> ())
+ if(isNil(l))
return "";
return car(l) + listToString(cdr(l));
}