diff --git a/prelude.ld b/prelude.ld index 6d3fa60..a6bd347 100644 --- a/prelude.ld +++ b/prelude.ld @@ -5,7 +5,7 @@ fn and fn append fn apply_command -fn assoc & ? +fn assoc fn atan/2 fn deg/rad fn dict @@ -15,6 +15,7 @@ fn get fn join fn mod fn neg? +fn print! fn some? fn state/call fn store! @@ -190,15 +191,13 @@ fn list { fn fold { "Folds a list." (f as :fn, xs as :list) -> fold (f, xs, f ()) - (f as :fn, xs as :list, root) -> { - loop (root, first (xs), rest (xs)) with { - (prev, curr, []) -> f (prev, curr) - (prev, curr, remaining) -> recur ( - f (prev, curr) - first (remaining) - rest (remaining) - ) - } + (f as :fn, xs as :list, root) -> loop (root, first (xs), rest (xs)) with { + (prev, curr, []) -> f (prev, curr) + (prev, curr, remaining) -> recur ( + f (prev, curr) + first (remaining) + rest (remaining) + ) } } @@ -375,12 +374,15 @@ fn strip { fn words { "Takes a string and returns a list of the words in the string. Strips all whitespace." (str as :string) -> { + print! (str) let no_punct = strip (str) + print! (no_punct) let strs = split (no_punct, " ") + print! (strs) fn worder (list, str) -> if empty? (str) - then list - else append (list, str) - fold (worder, strs, []) + then do list > report! + else do append (list, str) > report! + do fold (worder, strs, []) > report! } } @@ -623,7 +625,7 @@ fn max { & additional list operations now that we have comparitors fn at { "Returns the element at index n of a list or tuple, or the byte at index n of a string. Zero-indexed: the first element is at index 0. Returns nil if nothing is found in a list or tuple; returns an empty string if nothing is found in a string." - (xs as :list, n as :number) -> base :nth (xs, n) + (xs as :list, n as :number) -> base :nth (n, xs) (xs as :tuple, n as :number) -> base :nth (n, xs) (str as :string, n as :number) -> when { neg? (n) -> "" diff --git a/src/ludus.janet b/src/ludus.janet index 5c4dffc..0b7bc78 100644 --- a/src/ludus.janet +++ b/src/ludus.janet @@ -52,9 +52,7 @@ (comment # (do (def source ` -let myset = ${1, 2, 3, 3, 2} -omit (2, myset) -myset +fold (add, [1, 2, 3]) `) (def out (-> source ludus