【发布时间】:2018-10-03 23:48:45
【问题描述】:
我正在尝试通过这些类型中列表的内容过滤用户定义类型的列表,我想知道是否有一种方法可以使用 List.filter、List.exists 和 List.for_all 来达到该内部列表,而不是创建一个函数来访问它。
type weight = int
type height = int
type colours = Red | Black | Orange | White
type cat = Cat of weight * height * colours list
let cat1 = Cat (14, 14, [Red; Black])
let cat2 = Cat (15, 20, [Black; White])
let cat3 = Cat (13, 15, [Red; White])
let cats = [cat1; cat2; cat3]
有没有办法只使用这些 List 函数来创建不是某种颜色的猫的列表?这是一个家庭作业问题,所以我不能真正包含我的代码,但我添加了一个函数来隔离类型中的颜色列表,然后比较这些列表
谢谢!
【问题讨论】:
-
猫的类型定义不符合您的匹配语句。我把它删掉了,请告诉我是否有其他意图。
-
@lambda.xy.x 谢谢!包含类型定义只是为了让您了解问题,而不是我正在使用的实际定义;我只是停留在如何比较这些类型列表中的类型内的列表
-
我将对其进行编辑以使其更具概念性:这是一个家庭作业问题
-
那我明天会发布完整的答案,但今天给你一个提示
-
@lambda.xy.x 谢谢;我对 List 函数相互嵌套时采用的参数感到困惑
标签: ocaml higher-order-functions