fix bug in at
This commit is contained in:
parent
716ecb01c5
commit
3d0b58e6ed
18
prelude.ld
18
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,8 +191,7 @@ 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 {
|
||||
(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)
|
||||
|
@ -199,7 +199,6 @@ fn fold {
|
|||
rest (remaining)
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
& TODO: optimize these with base :conj!
|
||||
|
@ -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) -> ""
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Reference in New Issue
Block a user