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
| [] -> []
de manera que,Quiero hacer 2 cosas después de una instrucción "y luego" en un "si .. entonces .. otra cosa" declaración
filtersList2fromList1 ["x";"y";"z"] ["z";"x"] would be ["x";"z"]
filtersList2fromList1 ["x";"y";"z"] ["x"] would be ["x"]
lo que me gustaría añadir es, si el La instrucción "if" es verdadera, no solo ejecutará "finalList @ [s]", sino también "filtersList2fromList1 tl List2" para que sea una recursión. Sin ejecutar "filtersList2fromList1 tl List2" cuando es verdadero,
filtersList2fromList1 ["x";"y";"z"] ["z";"x"]
sería solamente ["x"]
, lo que es incorrecto.
¿Cómo debo resolver este problema?
Muchas gracias
¿Cuál es la definición de dolls_of? –
¿Por qué está creando 'finalList'? No está haciendo absolutamente nada. Tenga en cuenta que las listas son inmutables, por lo que 'finalList @ [s]' no cambia el valor de 'finalList', pero devuelve una nueva lista. –