Я изучаю новый язык программирования, который является F #, и я изо всех сил пытаюсь найти метод.Мне нужно разделить список фильмов и книг на 2 списка.Один, где фильмы, а другой, где книги перечислены. Я не могу использовать функции, которые уже существуют в F #.Я привожу некоторые примеры того, что я сделал до сих пор.Заранее спасибо
type Movie =
{ movieName: string
duration: Nat
fileSize: Nat }
type Book =
{ bookName: string
pages: Nat }
type Activity =
| Watch of Movie
| Read of Book
let rec partitionActivities(activities: Activity list): (Book list * Movie list) =
match activities with
| [] -> [],[]
| x::_ -> match x with
| Read Book -> [Book],[]
| Watch Movie -> [],[Movie]
| _::xs -> partitionActivities(xs)
Каковы мои входные данные:
partitionActivities [
Read { bookName = "A"; pages = 45N }
Watch { movieName = "B"; duration = 120N; fileSize = 50N }
Read { bookName = "C"; pages = 700N }
Watch { movieName = "D"; duration = 100N; fileSize = 1024N }
Watch { movieName = "E"; duration = 150N; fileSize = 9001N }
Read { bookName = "F"; pages = 700N }
Какой результат должен быть:
[
{ bookName = "A"; pages = 45N }
{ bookName = "C"; pages = 700N }
{ bookName = "F"; pages = 700N }
], [
{ movieName = "B"; duration = 120N; fileSize = 50N }
{ movieName = "D"; duration = 100N; fileSize = 1024N }
{ movieName = "E"; duration = 150N; fileSize = 9001N }
]