cursive Functions Without looking at the standard prelude, define the following library functions using recursion: o Decide if all logical values in a list are true: and :: [Bool] -> Bool
Hask
![Recursive Functions
1. Without looking at the standard prelude, define the following library functions using
recursion:
o Decide if all logical values in a list are true:
and [Bool] -> Bool
o Concatenate a list of lists:
concat: [[a]] -> [a]
o Produce a list with n identical elements:
replicate :: Int -> a -> [a]
o Select the nth element of a list:
(!!) :: [a] -> Int -> a
o Decide if a value is an element of a list:
elem: Eq a => a => [a] -> Bool](/v2/_next/image?url=https%3A%2F%2Fcontent.bartleby.com%2Fqna-images%2Fquestion%2F03e2bddc-1f40-455d-b291-edb98506412a%2F52ddd1ed-6692-4471-8315-cf574c2dcc50%2Fei8fl0p_processed.jpeg&w=3840&q=75)

Define the following library functions with recursion without consulting the definitions from the standard prelude: – and concatenate, replicate, and (!!) element
Notably, rather than employing explicit recursion, the majority of these functions are actually defined in the prelude using other library functions.
#Determining whether all of the logical values in a list are True: furthermore: [Bool] =Bool
nd :: [Bool] -> Bool
and [] = True
and (x:xs) = x && (and xs)
Example:
*C> and [True, True, True]
True
*C> and [True, False, True]
False
# Join several lists together: concatenation:
[[a] ] → [a]
concat :: [[a]] -> [a]
concat [xs] = xs
concat (xs:xxs) = xs ++ (concat xxs)
Example:
*Ch6> concat [[1..10], [2,4], [20..25]]
[1,2,3,4,5,6,7,8,9,10,2,4,20,21,22,23,24,25]
Step by step
Solved in 2 steps









