public static void REPL() { init(); while (true) { Console.Write(">> "); KObject datum = readDatum(); if (datum == null) { continue; } if (datum is KPair) { KPair p = datum as KPair; if (p.Car is KSymbol && ((KSymbol)p.Car).Value.Equals("exit") && p.Cdr is KNil) { break; } } try { datum = Evaluator.Eval(datum, env); Console.WriteLine("\n" + datum.Write() + "\n"); } catch (RuntimeException e) { Console.WriteLine("\nRuntimeException: " + e.Message); } /*catch (Exception e) * { * Console.WriteLine("Something went really wrong: " + e.Message); * }*/ } }
public override RecursionResult <KObject> Combine(KObject args, KEnvironment env, Continuation <KObject> cont) { var res = CheckParameter(args, 1, "write"); if (res != null) { return(CPS.Error(res, cont)); } KObject datum = First(args); Console.WriteLine(datum.Write()); return(Return(new KInert(), cont)); }