У меня есть следующий код:
type CustomerStatus = |Valid |Invalid
type Customer = {Id:int; FirstName: string; LastName:string; Status: CustomerStatus}
let checkCustomerFirstName (customers: Customer seq) =
customers
let checkCustomerLastName (customers: Customer seq) =
customers
let checkCustomerInBlockedList (customers: Customer seq) (blockedList: string seq) =
customers
Тип записи клиента имеет 4 атрибута: Id, FirstName, LastName и Status.CustomerStatus определяется в строке выше как DU с действительными и недействительными.Затем у меня есть три функции для проверки последовательности клиентов, для краткости я опустил тело функции.Обратите внимание, что третья функция принимает второй параметр - список строк, с которыми сравнивается имя клиента, чтобы определить, являются ли они недействительными.
Вот некоторые тестовые данные:
let customers =
[
{Id=0;LastName="Customer0";FirstName="Test";CustomerClass=Valid}
{Id=1;LastName="Customer1";FirstName="Test";CustomerClass=Valid}
{Id=2;LastName="Customer2";FirstName="Test";CustomerClass=Valid}
{Id=3;LastName="Customer3";FirstName="Test";CustomerClass=Valid}
{Id=4;LastName="Customer4";FirstName="Test";CustomerClass=Valid}
]
let blockedList = ["Customer3"]
Когда яКонвейер первых двух функций, как это:
customers
|> checkCustomerFirstName
|> checkCustomerLastName
Все работает как положено.Однако, когда я добавляю в 3-ю функцию,
customers
|> checkCustomerFirstName
|> checkCustomerLastName
|> checkCustomerInBlockedList blockedList
, я получаю такую ошибку
Как выполнить конвейерфункции, которые имеют дополнительные параметры?