let rec filtersList2fromList1 (List1:string list) (List2:string list) : string list =
let finalList = [] in
match List1 with
| s :: tl -> if List.mem s List2 = true
then finalList @ [s] else filtersList2fromList1 tl List2
| [] -> []
tak,chcę zrobić 2 rzeczy po "a następnie" oświadczenie w "if .. potem .. innego" oświadczenie
filtersList2fromList1 ["x";"y";"z"] ["z";"x"] would be ["x";"z"]
filtersList2fromList1 ["x";"y";"z"] ["x"] would be ["x"]
co chciałbym dodać to, że jeżeli "Jeśli" jest prawdziwe, to nie tylko wykonałoby "finalList @ [s]", ale także "filtersList2fromList1 tl List2", tak aby było rekursją. Bez wykonania "filtersList2fromList1 tl List2", gdy jest to prawdą, wartość parametru może wynosić tylko ["x"]
.
Jak powinienem rozwiązać ten problem?
Dziękuję bardzo
Jaka jest definicja dolls_of? –
Dlaczego tworzysz 'finalList'? Nie robi absolutnie nic. Należy pamiętać, że listy są niezmienne, więc 'finalList @ [s]' nie zmienia wartości 'finalList', ale zwraca nową listę. –