mirror of
https://github.com/Nexoniarz/Finch.git
synced 2026-11-03 16:54:25 +00:00
.fn is already used by other tools (e.g. Fennel). Modules are now looked up as name.fch; a leftover name.fn gets a clear message telling you to rename it. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
98 lines
1.7 KiB
Text
98 lines
1.7 KiB
Text
struct Node {
|
|
str name
|
|
ptr[Node] next
|
|
[]str tags
|
|
}
|
|
|
|
fn build(int n) -> []str {
|
|
[]str out
|
|
out.resize(n)
|
|
return out
|
|
}
|
|
|
|
fn firstLong([]str words) -> str {
|
|
for w in words {
|
|
tmp := w + "!"
|
|
if w.len > 3 {
|
|
return tmp
|
|
}
|
|
}
|
|
return "none"
|
|
}
|
|
|
|
fn loops() -> int {
|
|
count := 0
|
|
for i in 0..10 {
|
|
s := "item " + str(i)
|
|
if i == 2 {
|
|
continue
|
|
}
|
|
if i == 6 {
|
|
break
|
|
}
|
|
count += s.len
|
|
}
|
|
while true {
|
|
t := "x" + "y"
|
|
if t.len == 2 {
|
|
break
|
|
}
|
|
}
|
|
return count
|
|
}
|
|
|
|
fn deferred() -> str {
|
|
log := "start"
|
|
defer print("deferred ran, log was:", log)
|
|
log = log + " middle"
|
|
names := ["a", "b"]
|
|
defer print("names:", names)
|
|
return log + " end"
|
|
}
|
|
|
|
fn main([]str args) {
|
|
print(args.len > 0)
|
|
print(firstLong(["hi", "hello", "hey"]))
|
|
print(firstLong(["a"]))
|
|
print(loops())
|
|
print(deferred())
|
|
|
|
s := "ab"
|
|
s = s + s
|
|
s = s
|
|
print(s)
|
|
|
|
list := ["one", "two", "three"]
|
|
for w in list {
|
|
if w == "two" {
|
|
list.push("four")
|
|
}
|
|
}
|
|
print(list)
|
|
last := list.pop()
|
|
print(last, list)
|
|
|
|
head := new(Node(name: "first", tags: ["t1"]))
|
|
head.next = new(Node(name: "second"))
|
|
print(head.name, head.next.name, head.tags)
|
|
n := head
|
|
while n != null {
|
|
print("node", n.name)
|
|
n = n.next
|
|
}
|
|
free(head.next)
|
|
free(head)
|
|
|
|
[]str words
|
|
for i in 0..3 {
|
|
words.push("w" + str(i))
|
|
}
|
|
words.clear()
|
|
words.resize(2)
|
|
print(words, words.len)
|
|
print([1, 2, 3].slice(1, 3), "abc".bytes())
|
|
x := ["keep"]
|
|
y := x
|
|
x[0] = "changed"
|
|
print(x, y)
|
|
}
|