An integer matrix is said to be sparse if more than half of its entries is 0. Define an ML function

sparse which checks whether a square matrix is sparse. (You can assume that the input will be a

square matrix.)

You may define auxiliary functions. (Hint: Define a function that counts how many times a particular

value occurs in a list.)

For instance,

- sparse;

val it = fn : int list list → bool - sparse [];

val it = false : bool - sparse [[]];

val it = false : bool - sparse [[1,0], [0,1]];

val it = false : bool - sparse [[1,2,3], [0,0,1], [0,0,0]];

val it = true : bool - sparse [[1,2,3], [0,0,1], [0,0,4]];

val it = false : bool - sparse [[1,0,0,0], [0,1,0,0], [0,0,2,0], [~3,0,0,2]];

val it = true : bool