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
| [] -> []
in modo che,voglio fare 2 cose dopo un "poi" dichiarazione in un "se .. poi .. il resto" dichiarazione
filtersList2fromList1 ["x";"y";"z"] ["z";"x"] would be ["x";"z"]
filtersList2fromList1 ["x";"y";"z"] ["x"] would be ["x"]
quello che vorrei aggiungere è che, se il "if" è vera, non solo eseguirà "finalList @ [s]", ma anche "filtersList2fromList1 tl List2" in modo che sia una ricorsione. Senza eseguire "filtersList2fromList1 tl List2" quando è vero,
filtersList2fromList1 ["x";"y";"z"] ["z";"x"]
sarebbe solo ["x"]
, che è errato.
Come devo risolvere questo problema?
La ringrazio molto
Qual è la definizione di dolls_of? –
Perché stai creando 'finalList'? Sta facendo assolutamente nulla. Tieni presente che le liste sono immutabili, quindi 'finalList @ [s]' non modifica il valore di 'finalList' ma restituisce una nuova lista. –