diff --git a/main.js b/main.js index 9f6dd44..04e8cc3 100644 --- a/main.js +++ b/main.js @@ -7,12 +7,7 @@ import testSuites from './test/tests.json'; import { evalString, deftests, clearTests } from "./src/interpreter" let editorState = EditorState.create({ - doc: `(def client {:name "Super Co." - :location "Philadelphia" - :description "The worldwide leader in plastic tableware."}) - -(let [{:keys [name location description]} client] - [name location description])`, + doc: `(mapcat #(for [p (k (- i 1) %2)] (conj p %)))`, extensions: [basicSetup, clojure()] }) @@ -170,8 +165,8 @@ function testExercisesUntilFail() { console.log("Fails:", fails) } -//testSolution(randExercise()) -//testSolution("nth_prime") +testSolution(randExercise()) +//testSolution("f") //loadExercise("all_your_base") //testExercisesUntilFail() //testExercises() \ No newline at end of file diff --git a/src/interpreter.js b/src/interpreter.js index 7521ae2..cc94c44 100644 --- a/src/interpreter.js +++ b/src/interpreter.js @@ -132,13 +132,11 @@ function _EVAL(ast, env) { // Anonymous function shorthand if (types._list_Q(a1)) { let fun = [types._symbol('fn')] - var args = Array.from(new Set(ast.toString().match(/%\d?/g))).map(types._symbol) + var args = Array.from(new Set(ast.toString().match(/%\d?/g))).map(x => types._symbol(x)) let body = ast.slice(1)[0] fun.push(args) fun.push(body) - var lambda = types._function(EVAL, Env, body, env, args, a0); - lambda.lambda = true - return lambda + return types._function(EVAL, Env, body, env, args); } case "def": var res = EVAL(a2, env);