diff options
| author | Joel Martin <github@martintribe.org> | 2014-04-15 01:24:43 -0500 |
|---|---|---|
| committer | Joel Martin <github@martintribe.org> | 2014-04-15 01:24:43 -0500 |
| commit | 7e9a2883fe5c25a521b1dc37e4c549e1ed508ece (patch) | |
| tree | b444224dae6db978d4b5902f2a5b37046ba40d3e /java | |
| parent | a2849f89e7892feee256169398b1d2d82a2b8231 (diff) | |
| download | mal-7e9a2883fe5c25a521b1dc37e4c549e1ed508ece.tar.gz mal-7e9a2883fe5c25a521b1dc37e4c549e1ed508ece.zip | |
All: fix get. All pass stepA tests.
Diffstat (limited to 'java')
| -rw-r--r-- | java/src/main/java/mal/core.java | 16 | ||||
| -rw-r--r-- | java/src/main/java/mal/step6_file.java | 2 | ||||
| -rw-r--r-- | java/src/main/java/mal/step7_quote.java | 2 |
3 files changed, 12 insertions, 8 deletions
diff --git a/java/src/main/java/mal/core.java b/java/src/main/java/mal/core.java index e1e6705..6ac4f8e 100644 --- a/java/src/main/java/mal/core.java +++ b/java/src/main/java/mal/core.java @@ -205,13 +205,17 @@ public class core { static MalFunction get = new MalFunction() { public MalVal apply(MalList a) throws MalThrowable { - String key = ((MalString)a.nth(1)).getValue(); - MalHashMap mhm = (MalHashMap)a.nth(0); - HashMap<String,MalVal> hm = (HashMap<String,MalVal>)mhm.value; - if (hm.containsKey(key)) { - return hm.get(key); - } else { + if (a.nth(0) == Nil) { return Nil; + } else { + String key = ((MalString)a.nth(1)).getValue(); + MalHashMap mhm = (MalHashMap)a.nth(0); + HashMap<String,MalVal> hm = (HashMap<String,MalVal>)mhm.value; + if (hm.containsKey(key)) { + return hm.get(key); + } else { + return Nil; + } } } }; diff --git a/java/src/main/java/mal/step6_file.java b/java/src/main/java/mal/step6_file.java index 8d05b50..6a4c981 100644 --- a/java/src/main/java/mal/step6_file.java +++ b/java/src/main/java/mal/step6_file.java @@ -161,7 +161,7 @@ public class step6_file { return reader.read_str(((MalString)args.nth(0)).getValue()); } catch (MalContinue c) { return types.Nil; - return reader.read_str(((MalString)args.nth(0)).getValue()); + } } }); _ref(repl_env, "eval", new MalFunction() { diff --git a/java/src/main/java/mal/step7_quote.java b/java/src/main/java/mal/step7_quote.java index fbebb10..c46b4f0 100644 --- a/java/src/main/java/mal/step7_quote.java +++ b/java/src/main/java/mal/step7_quote.java @@ -192,7 +192,7 @@ public class step7_quote { return reader.read_str(((MalString)args.nth(0)).getValue()); } catch (MalContinue c) { return types.Nil; - return reader.read_str(((MalString)args.nth(0)).getValue()); + } } }); _ref(repl_env, "eval", new MalFunction() { |
