我创建了一个数据类型(SlcCustomer)列表:
[SlcCustomer {slcCustName = "Xena Gamble", slcCustID = 1, slcCustAge = 27},SlcCustomer {slcCustName = "Brooke Castaneda", slcCustID = 2, slcCustAge = 80}]
我在结果上使用PRINT函数获得了此输出。
现在,我需要对此进行过滤,我想删除任何具有slcCustAge
最佳答案
一种简单的方法是使用列表推导:
let sourcelist = [SlcCustomer {slcCustName = "Xena Gamble", slcCustID = 1, slcCustAge = 27},SlcCustomer {slcCustName = "Brooke Castaneda", slcCustID = 2, slcCustAge = 80}]
let resultlist = [x | x <- sourcelist, slcCustAge x <= 20]
这将根据需要过滤列表,并在逗号后指定过滤条件。
另外,您可以使用
filter
进行以下操作:let resultlist = filter (\x -> slcCustAge x <= 20) sourcelist
您可以只从函数中返回
resultlist
,也可以根据需要打印它。