diff --git a/assets/prelude.ld b/assets/prelude.ld index 9450709..6cc6c7b 100644 --- a/assets/prelude.ld +++ b/assets/prelude.ld @@ -1416,6 +1416,7 @@ fn turtle_listener () -> { (:position, pid) -> send! (pid, (:reply, do turtle_states > unbox > self () > :position)) (:penwidth, pid) -> send! (pid, (:reply, do turtle_states > unbox > self () > :penwidth)) (:heading, pid) -> send! (pid, (:reply, do turtle_states > unbox > self () > :heading)) + (:state, pid) -> send! (pid, (:reply, do turtle_states > unbox > self ())) does_not_understand -> { let pid = self () panic! "{pid} does not understand message: {does_not_understand}" @@ -1495,6 +1496,10 @@ fn penwidth { () -> do turtle_states > unbox > :turtle_0 > :penwidth } +fn savestate { + "Returns the turtle's state." + () -> do turtle_states > unbox > :turtle_0 +} &&& fake some lispisms with tuples fn cons { diff --git a/src/base.rs b/src/base.rs index a73fb9f..750a385 100644 --- a/src/base.rs +++ b/src/base.rs @@ -470,8 +470,7 @@ pub fn r#type(x: &Value) -> Value { pub fn split(source: &Value, splitter: &Value) -> Value { match (source, splitter) { (Value::String(source), Value::String(splitter)) => { - println!("splitting {source} with {splitter}"); - let parts = source.split_terminator(splitter.as_str()); + let parts = source.split(splitter.as_str()); let mut list = vector![]; for part in parts { list.push_back(Value::String(Rc::new(part.to_string())));