Ich versuche, eine Funktion zu schreiben, die eine Liste analysiert und eine neue Liste erstellt, die die gewünschten Wörter in diesen Fallnamen enthält.Ocaml-Operatoren in anonymen Funktionen
kann ich die Funktion für einen Namen geschrieben z
let extract_name (lst : string list) : string list =
List.filter (fun x -> x = "George") (lst)
Wenn ich versuche, und schreiben Sie es für mehr als einen Namen ich Fehler bekommen. Ich habe die Klammern ein paar Mal neu angeordnet, aber ich bekomme immer noch Fehler.
let extract_name (lst : string list) : string list =
List.filter (fun x -> x = ("George" || "Victoria")) (lst)
Fehler
let extract_name (lst : string list) : string list =
List.filter (fun x -> x = "George" || "Victoria") (lst)
;;
Characters 93-103:
List.filter (fun x -> x = "George" || "Victoria") (lst)
^^^^^^^^^^
Error: This expression has type string but an expression was expecte of type bool
# let extract_name (lst : string list) : string list =
List.filter (fun x -> x = ("George" || "Victoria")) (lst);;
Characters 82-90:
List.filter (fun x -> x = ("George" || "Victoria")) (lst);;
^^^^^^^^
Error: This expression has type string but an expression was expected of type bool
Wie kann ich dieses Problem lösen?
was ist, wenn Sie es auf die Werte in einer Liste vergleichen wollen? – Tank
Dann verwenden Sie etwas wie ['Spaß x -> List.mem x [" George "," Victoria "]'] (https://caml.inria.fr/pub/docs/manual-ocaml/libref/List.html #VALmem) – Bergi