Nice!! For optimizing part 2, I would use a set! O(1) to check if an item is in it!
Aha! Thanks so much, it's blazingly fast now:
let rec addFreqWithState acc visited whole remaining =
match remaining with
|  -> addFreqWithState acc visited whole whole
| head::tail ->
let newval = acc + head
if Set.contains newval visited then
addFreqWithState newval (Set.add newval visited) whole tail
let day1Part2 fileName =
let freqs = getFrequencies fileName
addFreqWithState 0 (new Set<int> (Seq.empty)) freqs freqs
I guess the Tour of F# page shouldn't be my only learning resource :)
We're a place where coders share, stay up-to-date and grow their careers.
We strive for transparency and don't collect excess data.