F# Change element in list and return full new list
I have a list of type (string * (int * int)) list . I want to be able to search through the list, finding the right element by it's string identifier, do a calculation on one of the ints , and then return the full, modified list. Example: Given a list let st = [("a1",(100,10)); ("a2",(50,20)); ("a3",(25,40))] I'm trying to make a function which gets one of the elements and subtracts number from one of the ints in the tuple. get ("a2",10) st //Expected result: st' = [("a1",(100,10)); ("a2",(40,20)); ("a3",(25,40))] I feel I'm almost there, but am a little stuck with the following function: let