@jonocarroll I would have used an APL-like solution in #Uiua: ⍜∩⊥₁₀↻¯
@jonocarroll I would have used an APL-like solution in #Uiua: ⍜∩⊥₁₀↻¯
□↯3_3□°△3_3 #uiua
Back in November, I decided I was going to attempt this year's Advent of Code in uiua as far as I could.
Uiua is a tacit (no variable bindings - state is on the stack) array-programming language, strongly influenced by APL and BQN - some things were obviously going to be pretty easy in it, but I was concerned about managing larger programs in a tacit paradigm. However, given I've not done much array programming, I thought the challenge would be good for me.
Unexpected complication: I had flu - badly enough that I did have a fever and was clearly not entirely there for the second week of AoC. This meant that several of the later days had a lot of debugging needed...
My worries finally happened in Day 9 Part 2. Trying to write a relatively complex algorithm in uiua - with flu - meant that I lost track of the state of the stack somewhere. I tried debugging the code a few times [I even tried throwing LLMs at it as a last resort¹... which confidently told me multiple things that weren't true about the problem space and the code... and never found any issues - so much for the future of coding] but uiua's debugging functionality seems to rely on you using VSCode [sigh].
In the end, I solved everything but Day 9 Pt 2 and Day 10 pt 2 in uiua - it excelled at a lot of the problems (Day 11 Pt 2 was fun, although I wish uiua had built in matrix maths).
The last 2 days I finally wandered back to the unsolved parts and solved Day 9 and 10 pts2 in Julia - my solution to Day 9 was exactly the approach I tried to implement in uiua, but the Julia implementation worked perfectly first time (thanks, local variable bindings!).
So, I think it was worth it - using uiua for most of AoC did make me think a bit different for some of them - but I remain somewhat unconvinced that tacitness is a great match for more complex algorithms. (And it's worth noting that uiua's basket of operators includes several that were implemented *because* the community found it hard to solve AoC problems in stock uiua without them!)
The most fun was using the fft operator (yes, uiua has one) to solve Day 4 (both parts) in a way I don't think Eric expected - it wasn't *optimal*, but it was *fun*.
(footnote about LLMs in reply)
A bit behind on AoC because I had a busy day yesterday (so I only had time to write down how to do the thing the trivial way and think about representations in uiua) and now I seem to have flu which isn't helping with the backlog :D
[I also have to finish off Day 2 Pt2 which I deliberately attempted in a "clever and asymptotically much faster than naïve" approach, but is thus actually harder than my solutions to days 3-7 have been :D ]
#AdventOfCode 2025 started today. I've got all 500 stars from previous editions, mostly in #Rust, some in #Elixir, and this year #Uiua will probably my language of choice. My solution for today was written in Uiua (104 chars), Elixir (649 chars), and Rust (658 chars), just for fun.
Whatever your preferred language is, or whatever language you want to learn, https://adventofcode.com/ is for you. This and the Synacor challenge (same author) is how I really got serious in Rust back in 2015.
@ericwastl if you're going 'aaaaa' -- how do you think us, your unsuspecting but pre-gleeful audience, are doing today?
(except the folks who write #uiua, who i can only assume make that noise everyday at sunrise...)
Doesn’t uiua #uiua just replace local variables with planets or, for macros, placeholders? I love the language’s radically functional vibe, but still, something just seems either unnecessary or insincere here
Doesn’t uiua #uiua just replace local variables with planets or, for macros, placeholders? I love the language’s radically functional vibe, but still, something just seems either unnecessary or insincere here
🌘 陣列程式設計:曼德布洛特集合
➤ 從 J 語言到 Uiua:陣列編程的演進與樂趣
✤ https://jcmorrow.com/mandelbrot/
作者分享了使用 J 語言和 Uiua 語言編寫曼德布洛特集合的經驗。最初使用 J 語言實現,但多年後發現難以閱讀,於是轉而使用更現代的 Uiua 語言進行重寫。文章詳細比較了兩種語言的陣列編程特性,特別強調了 Uiua 作為一個基於堆疊的陣列語言,其獨特的運算方式和簡潔的語法。Uiua 自動生成 GIF 的功能也被認為是一大亮點,大大提升了開發的即時性和視覺化體驗。
+ Uiua 聽起來很有趣!能自動生成 GIF 真是太方便了,這能省下很多時間。
+ 陣列程式語言的威力在於其簡潔性,J 語言和 Uiua 都能讓人快速實現複雜的功能。
#程式設計 #陣列程式語言 #曼德布洛特集合 #J 語言 #Uiua 語言
@desttinghim You might also enjoy #uiua! It's inspired by BQN but also has stack language features -- I find it very elegant. It's written in rust, so I'm not sure if it's as easy to embed from zig.
https://www.uiua.org/
Tu connais Brainfuck ? C'est marrant mais inutilisable.
Ben dans la série "ésotérique MAIS (apparemment) utilisable dans la vraie vie"
Mes neurones ont surchauffé.
Il en reste juste assez pour envoyer ce pouët. Après, paracétamol, codéine, dodo, glace sur le front.