Implement the following operations which manipulate a binary number stored as a list of 0s and 1s using some combination of the higher-order functions map, reduce, and filter. Do not use recursion.(Your solutions are likely to be compact once you have the logic.)1. Create a procedure called (number-length lst) that counts how many digits are in the number. Do not use the built-in length procedure. Sample output: (get-ones '(1 1 0 1 0 0)) should give 6.2. Create a procedure called (count-zeroslst) that counts how many 0s are in a number. Sample output: (count-zeros'(1 1 0 1 0 0)) should give 3.3. Create a procedure called (binary->string lst) that converts a binary number in a list to a string. Sampleoutput: (binary->string '(1 1 0 1 0 0)) should give "110100".[4points]