Count the changes in an array

MATL, 2 bytes


Try it online! Or verify all test cases.


     % Implicit input
d    % Consecutive differences
z    % Number of nonzeros
     % Implicit display

Python 3, 38 bytes

f=lambda x=0,*y:y>()and(x!=y[0])+f(*y)

Try it online!

Haskell, 33 bytes

f _=0

Try it online!

Bonus: Somewhat curious point-free arithmetic version (44 bytes)


Try it online!

Given an input [1,1,4,3,3,3], we first take the difference of adjacent entries ([0,3,-1,0,0]), then the absolute value: [0,3,1,0,0]. Taking zero to the power of each element the first time yields [1,0,0,1,1], and a second time inverts the list: [0,1,1,0,0] ((1-) would also work here instead of (0^)). Finally we take the sum of the list to get 2.