Управление деятельностью / регистром на основе модели

У меня есть задание, на котором я застрял. Я постараюсь дать точное резюме описания.

У клуба есть реестр, содержащий имена и описания каждого члена. Имя - строка, а описание - кортеж (no,yb,ths)

  • no = номер телефона,
  • yb = год рождения -ths = интересующие темы.

Расположение клуба задается предикатом, описывающим членов клуба, которые могут быть заинтересованы в этом устройстве. т.е. P1(no,yb,ths) истинно для описания (no,yb,ths).

Теперь цель состоит в том, чтобы создать реестр, скажем, трех членов, а затем группу.

Затем я должен создать функцию, которая дает список имен и телефонных номеров участников в регистре r, которые могут быть задействованы в расположении.

До сих пор я написал следующий код для создания структуры, однако я немного не уверен, где он кажется правильным или нет, а также в целом о том, как создать функцию извлечения, которая может быть видна из фрагмента кода, введенного ниже:

/// Club for employees
/// Register containing = names, and describtions. All names a unique. 
/// The description is a tuple
/// (no,yb,ths) = no => Telefone number, yb = year of birth, ths is the themes of interests. 



(*Exercise 1*)
type Name = string;;
type No = int;;
type Yb = int;;
type Ths = string;;

type Employee = (Name *(No*Yb*Ths)) list
type Arrangment = (No*Yb*Ths);;


(* Exercise 2*)
// Declaration of arrangement
// Declaration of register. 
// Declaration of an arrangement p2. 

let employee = [("John",(38804016,1982,["Soccer";"jazz"]));
                ("Rebecca",(20660416,1990,["Rugby";"Techno"]));
                ("Mogens",(93989832,1958,["Jazz";"Spa"]))];;
let p1 = [(1,1982,["Soccer";"Jazz")];;
let p2 = [(2,1990,"Soccer")];;

let rec findPersons p = function
    |(p', adesc)::_ when p = p' -> adesc
    |_::employee -> findPersons p 
    |_-> failwith(ac + " No matching acitivities")

0 ответов

Другие вопросы по тегам