~repos /plum

#treesitter#compiler#wasm

git clone https://pyrossh.dev/repos/plum.git

A statically typed, imperative programming language inspired by rust, python



test/aoc_2020_1.plum



module aoc2020_1
import std/fs
import std/int
main() -> Unit =
input = fs.readFile!("./examples/test/demos/aoc2020/1.txt")
numbers = parseNumbers(input)
for i in 0...numbers.size
a = numbers.get!<u32>(i)
for j in 0...numbers.size
b = numbers.get!<u32>(j)
if a + b == 2020
printLn(a * b)
return
parseNumbers(input: Str) -> List<Int> =
numbers = List<Int>()
current_number = 0
for i in 0..input.length()
c = input.charAt(i)
if c >= '0' && c <= '9'
current_number *= 10
current_number += Int(c - '0')
if c == '\n'
numbers.push!<u32>(current_number)
current_number = 0
numbers