my solutions to advent of code
aoc advent-of-code

:( cant have it the nice way because gleam doesnt know that it should turn that into a loop

aylac.top b3ae54d5 5bd9f564

verified
Changed files
+5 -9
2015
8
gleam
+5 -9
2015/8/gleam/src/main.gleam
··· 6 6 import simplifile.{read} 7 7 8 8 pub fn get_mem_size(str, cur_size, i) { 9 - let rec = fn(i, extend) { get_mem_size(str, cur_size + 1, i + extend) } 10 - 11 9 case string.slice(str, i, 2) { 12 10 "" -> cur_size 13 - "\\\\" | "\\\"" -> rec(i + 1, 1) 14 - "\\x" -> rec(i + 1, 3) 15 - _ -> rec(i, 1) 11 + "\\\\" | "\\\"" -> get_mem_size(str, cur_size + 1, i + 2) 12 + "\\x" -> get_mem_size(str, cur_size + 1, i + 4) 13 + _ -> get_mem_size(str, cur_size + 1, i + 1) 16 14 } 17 15 } 18 16 ··· 21 19 } 22 20 23 21 pub fn get_encoded_size(str, cur_size, i) { 24 - let rec = fn(next_size) { get_encoded_size(str, next_size, i + 1) } 25 - 26 22 let char = string.slice(str, i, 1) 27 23 case char { 28 24 "" -> cur_size + 2 29 - "\\" | "\"" -> rec(cur_size + 2) 30 - _ -> rec(cur_size + 1) 25 + "\\" | "\"" -> get_encoded_size(str, cur_size + 2, i + 1) 26 + _ -> get_encoded_size(str, cur_size + 1, i + 1) 31 27 } 32 28 } 33 29