Question: part A Write a function in Ocaml cond_dup : 'a list -> ('a -> bool) -> 'a list that takes in a list and predicate

part A

Write a function in Ocaml

cond_dup : 'a list -> ('a -> bool) -> 'a 

list that takes in a list and predicate and duplicates all elements which satisfy the condition expressed in the predicate. For example, cond_dup [3;4;5] (fun x -> x mod 2 = 1) = [3;3;4;5;5].

let rec cond_dup l f = (* YOUR CODE HERE *) raise (Failure "Not implemented") <-- remove when coded 
assert (cond_dup [3;4;5] (fun x -> x mod 2 = 1) = [3;3;4;5;5]) 

part B

Write a function in ocaml

n_times : ('a -> 'a) * int * 'a -> 'a 

such that n_times (f,n,v) applies f to v n times. For example, n_times((fun x-> x+1), 50, 0) = 50. If n<=0 return v.

let rec n_times (f, n, v) = (* YOUR CODE HERE *) raise (Failure "Not implemented") 
assert (n_times((fun x-> x+1), 50, 0) = 50)
Use Ocaml
use OCAML

Step by Step Solution

There are 3 Steps involved in it

1 Expert Approved Answer
Step: 1 Unlock blur-text-image
Question Has Been Solved by an Expert!

Get step-by-step solutions from verified subject matter experts

Step: 2 Unlock
Step: 3 Unlock

Students Have Also Explored These Related Databases Questions!