Я пытаюсь написать функцию, которая будет анализировать список и создать новый список, содержащий слова, которые я хочу в именах этого случая.Операторы Ocaml в анонимных функциях
Я предписание функции для одного имени например
let extract_name (lst : string list) : string list =
List.filter (fun x -> x = "George") (lst)
Когда я пытаюсь писать более одного имени, которое я получаю сообщение об ошибке. Несколько раз я скорректировал круглые скобки, но я все еще получаю ошибки.
let extract_name (lst : string list) : string list =
List.filter (fun x -> x = ("George" || "Victoria")) (lst)
Ошибки
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
Как решить эту проблему?
что, если вы хотите, чтобы сравнить его значения в списке? – Tank
Затем используйте что-то вроде ['fun x -> List.mem x [" George "," Victoria "]'] (https://caml.inria.fr/pub/docs/manual-ocaml/libref/List.html #VALmem) – Bergi