Skip to content

Instantly share code, notes, and snippets.

@mulias
mulias / part1.possum
Last active December 22, 2024 11:46
AoC 2024 Day 3
many(find(mul))
mul = "mul(" & int -> A & "," & int -> B & ")" $ Num.Mul(A, B)
@mulias
mulias / part1.possum
Last active December 3, 2024 03:15
AoC 2024 Day 2
many_sep(safe_report | unsafe_report, nl)
safe_report =
int -> First &
increasing_report(First) |
decreasing_report(First)
increasing_report(Prev) =
space & int -> Next ?
const(Increasing(Prev, Next)) & increasing_report(Next) :
@mulias
mulias / part1.possum
Created December 3, 2024 03:11
AoC 2024 Day 1
array_sep(tuple2_sep(int, spaces, int), nl) -> Rows $ (
TransposeTable(Rows) -> [List1, List2] &
TransposeTable([Sort(List1), Sort(List2)]) -> SortedPairs &
Map(SortedPairs, Abs) -> Distances &
MergeArray(Distances)
)
Sort(Array) =
Array -> [] | (
Array -> [X, ...Xs] &
@mulias
mulias / prob1.rkt
Last active May 9, 2024 22:01
CS 242 HW 6
#lang racket
(print-as-expression #f)
(provide (all-defined-out))
(require racket/block)
;================;
; Internal Defns ;
;================;
; create a stack.
(define _stack empty)
# R G B G
# -------
# Y R P B Correct #: 0, Right Color Wrong Place #: 2, Incorrect #: 2
# R Y R G Correct #: 2, Right Color Wrong Place #: 0, Incorrect #: 2
#
#
# Position 1: R <enter>
# Position 2: R <enter>
#
# > R Y R G
@mulias
mulias / 2023Day14.roc
Last active December 15, 2023 16:18
AoC 2023 Day 14
app "advent-2023-roc-day14"
packages {
cli: "https://github.com/roc-lang/basic-cli/releases/download/0.7.0/bkGby8jb0tmZYsy2hg1E_B2QrCgcSTxdUlHtETwm5m4.tar.br",
parser: "https://github.com/lukewilliamboswell/roc-parser/releases/download/0.3.0/-e3ebWWmlFPfe9fYrr2z1urfslzygbtQQsl69iH1qzQ.tar.br",
array2d: "https://github.com/mulias/roc-array2d/releases/download/v0.1.0/ssMT0bDIv-qE7d_yNUyCByGQHvpNkQJZsGUS6xEFsIY.tar.br",
}
imports [
cli.Stdout,
array2d.Array2D.{ Array2D, Index, Shape },
parser.Core.{ Parser, between, sepBy1, chompWhile, const, map, oneOf, buildPrimitiveParser, parsePartial, fail },
@mulias
mulias / 2023Day13.roc
Last active December 14, 2023 05:30
AoC 2023 Day 13
app "advent-2023-roc-day13"
packages {
cli: "https://github.com/roc-lang/basic-cli/releases/download/0.7.0/bkGby8jb0tmZYsy2hg1E_B2QrCgcSTxdUlHtETwm5m4.tar.br",
parser: "https://github.com/lukewilliamboswell/roc-parser/releases/download/0.3.0/-e3ebWWmlFPfe9fYrr2z1urfslzygbtQQsl69iH1qzQ.tar.br",
array2d: "https://github.com/mulias/roc-array2d/releases/download/v0.1.0/ssMT0bDIv-qE7d_yNUyCByGQHvpNkQJZsGUS6xEFsIY.tar.br",
}
imports [
cli.Stdout,
array2d.Array2D.{ Array2D, Index, Shape },
parser.Core.{ Parser, between, sepBy1, chompWhile, const, map, oneOf, buildPrimitiveParser, parsePartial, fail },
@mulias
mulias / 2023Day03.roc
Created December 4, 2023 18:49
AoC 2023 Day 3, this time fast
app "day03"
packages {
cli: "https://github.com/roc-lang/basic-cli/releases/download/0.7.0/bkGby8jb0tmZYsy2hg1E_B2QrCgcSTxdUlHtETwm5m4.tar.br",
array2d: "https://github.com/mulias/roc-array2d/releases/download/v0.1.0/ssMT0bDIv-qE7d_yNUyCByGQHvpNkQJZsGUS6xEFsIY.tar.br",
}
imports [
cli.Stdout,
array2d.Array2D.{ Array2D },
"example.txt" as exampleInput : Str,
"input.txt" as puzzleInput : Str,
app "day03"
packages {
cli: "https://github.com/roc-lang/basic-cli/releases/download/0.7.0/bkGby8jb0tmZYsy2hg1E_B2QrCgcSTxdUlHtETwm5m4.tar.br",
array2d: "https://github.com/mulias/roc-array2d/releases/download/v0.1.0/ssMT0bDIv-qE7d_yNUyCByGQHvpNkQJZsGUS6xEFsIY.tar.br",
}
imports [
cli.Stdout,
array2d.Array2D.{ Array2D },
"example.txt" as exampleInput : Str,
"input.txt" as puzzleInput : Str,
@mulias
mulias / 2023Day03.roc
Last active December 3, 2023 15:31
AoC 2023 day 3 in Roc -- performance issue using Sets
app "day03"
packages {
cli: "https://github.com/roc-lang/basic-cli/releases/download/0.7.0/bkGby8jb0tmZYsy2hg1E_B2QrCgcSTxdUlHtETwm5m4.tar.br",
array2d: "https://github.com/mulias/roc-array2d/releases/download/v0.1.0/ssMT0bDIv-qE7d_yNUyCByGQHvpNkQJZsGUS6xEFsIY.tar.br",
}
imports [
cli.Stdout,
array2d.Array2D.{ Array2D },
"example.txt" as exampleInput : Str,
"input.txt" as puzzleInput : Str,