44 lines
1.2 KiB
Org Mode
44 lines
1.2 KiB
Org Mode
#+title: Notes
|
|
* testing things
|
|
|
|
testSorter := day19.ReadSorterLine("qqz{s>2770:qs,m<1801:hdj,R}")
|
|
log.Printf("my test sorter is %+v", testSorter)
|
|
|
|
testOperation := day19.ReadOperationLine("s>2770:qs")
|
|
log.Println(testOperation)
|
|
** testing simplification
|
|
lnx{m>1548:A,A}
|
|
qqz{s>2770:qs,m<1801:hdj,R}
|
|
kt{m>2215:R,x>3386:A,x<3107:R,R}
|
|
|
|
testSorter := day19.ReadSorterLine("kt{m>2215:R,x>3386:A,x<3107:R,R}")
|
|
log.Printf("my test sorter is %+v", testSorter)
|
|
|
|
simplified := day19.SimplifyOperation(testSorter)
|
|
log.Printf("> simplivied %+v", simplified)
|
|
* i probably don't need 'actual actors'
|
|
just a generic function that takes 'detail' and 'sorterData'
|
|
then applies sorterData to the detail,
|
|
and calls itself with new sorter
|
|
|
|
with special cases for "R" and "A"
|
|
|
|
so. have funciton from OpeartionData & Detail -> true/false
|
|
if true take the destination, if false, check next
|
|
* well. only way to do this is with intervals
|
|
|
|
so, sorter check takes in interval.
|
|
|
|
then for each of the rule,
|
|
call first rule with full interval,
|
|
deduct first rule (for those that don't match) and pass to second.
|
|
deduct second and pass to next
|
|
|
|
A will return full
|
|
R will return empty
|
|
|
|
and results from each rule application should be joined
|
|
|
|
so. i need interval deduction
|
|
and i need interval join
|