9.4 KiB
9.4 KiB
In [1]:
from notebook_preamble import J, V, defineIn [2]:
define('pair_up == dup uncons swap unit concat zip')In [3]:
J('[1 2 3] pair_up')[[2 1] [3 2] [1 3]]
In [4]:
J('[1 2 2 3] pair_up')[[2 1] [2 2] [3 2] [1 3]]
In [5]:
define('total_matches == 0 swap [i [=] [pop +] [popop] ifte] step')In [6]:
J('[1 2 3] pair_up total_matches')0
In [7]:
J('[1 2 2 3] pair_up total_matches')2
In [8]:
define('AoC2017.1 == pair_up total_matches')In [9]:
J('[1 1 2 2] AoC2017.1')3
In [10]:
J('[1 1 1 1] AoC2017.1')4
In [11]:
J('[1 2 3 4] AoC2017.1')0
In [12]:
J('[9 1 2 1 2 1 2 9] AoC2017.1')9
In [13]:
J('[9 1 2 1 2 1 2 9] AoC2017.1')9
In [ ]:
In [14]:
J('[1 2 3 4] dup size 2 / [drop] [take reverse] cleave concat zip')[[3 1] [4 2] [1 3] [2 4]]
In [15]:
J('[1 2 3 4] dup size 2 / [drop] [take reverse] cleave zip')[1 2 3 4] [[1 3] [2 4]]
In [16]:
define('AoC2017.1.extra == dup size 2 / [drop] [take reverse] cleave zip swap pop total_matches 2 *')In [17]:
J('[1 2 1 2] AoC2017.1.extra')6
In [18]:
J('[1 2 2 1] AoC2017.1.extra')0
In [19]:
J('[1 2 3 4 2 5] AoC2017.1.extra')4