【发布时间】:2019-04-12 21:51:58
【问题描述】:
我有以下代码:
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
一切都按预期进行。 但是,当我添加第三个函数时,
customers
|> checkCustomerFirstName
|> checkCustomerLastName
|> checkCustomerInBlockedList blockedList
我收到这样的错误
如何流水线化具有附加参数的函数?
【问题讨论】:
标签: f#