Вопрос

Если я определил следующие типы:

type category = Noun | Verb | Adjective | Preposition;;
type transformation = {start: category; fin: category};;

Как лучше всего ответить на вопрос " есть запись, где start = Noun в списке преобразования типов?

Вроде как

let un = [{start= Noun; fin= Noun}; {start= Verb; fin= Adjective}];;    
List.mem {start = Noun; _} un;;

За исключением того, что синтаксис, похоже, не работает.

Это было полезно?

Решение

List.exists (fun x -> x.start = Noun) un

List.mem можно рассматривать как особый случай List.exists , где List.mem x ys эквивалентно List.exists ((=) x) ys . Таким образом, вы можете использовать List.exists для более общих критериев членства.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top