USING: grouping hash-sets io.backend io.encodings.utf8 io.files kernel math sequences sets unicode ; IN: advent-of-code.day-03 : get-input-one ( -- seq ) "vocab:advent-of-code/day-03/_input/one.txt" normalize-path utf8 file-lines ; : >priority ( fixnum -- fixnum ) dup letter? [ 96 - ] [ 38 - ] if ; : result ( seq -- item ) members first ; : priority-sum-with ( sew quot -- fixnum ) [ >priority ] compose [ call( x -- y ) ] curry map-sum ; : find-duplicate ( string -- duplicate ) halves intersect result ; : solve-part-one ( -- solution ) get-input-one [ find-duplicate ] priority-sum-with ; : find-common-item ( seq -- item ) intersect-all result ; : solve-part-two ( -- solution ) get-input-one 3 group [ find-common-item ] priority-sum-with ;