In F# (F sharp) Write an function findMatches that takes a string and a list of tuples as arguments. Each element of the list will be a tuple consisting of a string and an int. Find all of the tuples for which the string matches the first argument and collect all of the corresponding integers. Your final result should be the collected integers sorted in ascending order. For example, if the string argument is "A" and the list is [("A",5); ("BB",6); ("AA",9); ("A",0)], your function should return the list [0;5]. You may use the List.sort function to produce your final result. Important: Do not use F# system functions or methods (such as map, max or filter, etc). Examples in F# Interactive: > findMatches "A" [("A",5); ("BB",6); ("AA",9); ("A",0)];; val it : int list = [0; 5] > findMatches "BB" [("A",5); ("BB",6); ("AA",9); ("A",0)];; val it : int list = [6] > findMatches "X" [("A",5); ("BB",6); ("AA",9); ("A",0)];; val it : int list = [] > findMatches "A" [];; val it : int list = [] Here is part of my code but I got stuck let findMatches str (listOfTuples: (string* int)list)= match listOfTuples with | [] -> [int] | _ -> let rec checkList listOfTuples list1= match listOfTuples with | [] -> list2 | (a, b) :: tail -> if a == str then list2 = b :: list1 else checkList tail
In F# (F sharp) Write an function findMatches that takes a string and a list of tuples as arguments. Each element of the list will be a tuple consisting of a string and an int. Find all of the tuples for which the string matches the first argument and collect all of the corresponding integers. Your final result should be the collected integers sorted in ascending order. For example, if the string argument is "A" and the list is [("A",5); ("BB",6); ("AA",9); ("A",0)], your function should return the list [0;5]. You may use the List.sort function to produce your final result.
Important: Do not use F# system functions or methods (such as map, max or filter, etc).
Examples in F# Interactive:
> findMatches "A" [("A",5); ("BB",6); ("AA",9); ("A",0)];;
val it : int list = [0; 5]
> findMatches "BB" [("A",5); ("BB",6); ("AA",9); ("A",0)];;
val it : int list = [6]
> findMatches "X" [("A",5); ("BB",6); ("AA",9); ("A",0)];;
val it : int list = []
> findMatches "A" [];;
val it : int list = []
Here is part of my code but I got stuck
let findMatches str (listOfTuples: (string* int)list)=
match listOfTuples with
| [] -> [int]
| _ ->
let rec checkList listOfTuples list1=
match listOfTuples with
| [] -> list2
| (a, b) :: tail ->
if a == str then list2 = b :: list1
else checkList tail
Step by step
Solved in 3 steps with 1 images