solve 2016/1 part 1 in uiua

This commit is contained in:
2025-09-23 23:55:53 +02:00
parent b4013642be
commit d4267d6f51

24
2016/1/main.ua Normal file
View File

@@ -0,0 +1,24 @@
# aoc 2016/1
&fras $ input.txt
°/$"_, _" ⍜⇌↘₁
∧◇(⍥\+⋕ ⍣(
⍩⊙⍜⊢(×i) °(⊂@L)
| ⍩⊙⍜⊢(ׯi) °(⊂@R))
)⊙i_0
⌵+°ℂ⊣
$Part₁
# the idea is to represent our position
# as a complex number (2d vector). rotate by
# 90 or -90 degrees when you encounter L or R
# by multiplying by i or -i on the direction
# vector.
# this can be done by folding with the initial
# values i (direction) and 0 (position), pattern-
# matching the next token on L or R and recognizing
# them by ⍩.
# once the direction vector has been rotated
# accordingly, ⍥\+⋕ to add the direction unit vector
# to the position vector n times for token Ln or Rn.
#
# we can see many awesome pieces of functional and
# array oriented code!