From 7bdaf291a0098ead04b8d3b89f030496794d8aad Mon Sep 17 00:00:00 2001 From: Scott Richmond Date: Wed, 19 Jun 2024 18:23:54 -0400 Subject: [PATCH] fix slice --- prelude.ld | 7 ++----- src/base.janet | 2 +- src/ludus.janet | 2 +- 3 files changed, 4 insertions(+), 7 deletions(-) diff --git a/prelude.ld b/prelude.ld index 937f687..116dea5 100644 --- a/prelude.ld +++ b/prelude.ld @@ -649,7 +649,7 @@ fn last { fn butlast { "Returns a list, omitting the last element." - (xs as :list) -> base :slice (xs, dec (count (xs))) + (xs as :list) -> base :slice (xs, 0, dec (count (xs))) } fn slice { @@ -659,10 +659,7 @@ fn slice { gte? (start, end) -> [] gt? (end, count (xs)) -> slice (xs, start, count (xs)) neg? (start) -> slice (xs, 0, end) - true -> { - let slice = base :slice (xs, inc (start), inc (end)) - base :into ([], slice) - } + true -> base :slice (xs, start, end) } (str as :string, end as :number) -> base :str_slice (str, 0, end) (str as :string, start as :number, end as :number) -> base :str_slice (str, start, end) diff --git a/src/base.janet b/src/base.janet index 34c1302..c026c07 100644 --- a/src/base.janet +++ b/src/base.janet @@ -281,7 +281,7 @@ "round" math/round "show" show "sin" math/sin - "slice" slice + "slice" array/slice "split" string/split "sqrt" math/sqrt "store!" store! diff --git a/src/ludus.janet b/src/ludus.janet index c6d6d60..6bc71ae 100644 --- a/src/ludus.janet +++ b/src/ludus.janet @@ -52,7 +52,7 @@ (comment # (do (def source ` -forward! (100) +butlast ([1, 2, 3]) `) (def out (-> source ludus