【发布时间】:2011-05-14 18:35:40
【问题描述】:
假设我有以下记录:
type t = {a:int}
为了从列表中选择字段 a 的值,我执行以下操作:
let x = [{a=1};{a=2}]
let y = List.map (fun t -> t.a) x
这对我来说有点“不干净”。作为比较,在 Haskell 中我会执行以下操作:
data T = T { a :: Int}
x = [T {a = 1}, T {a = 2}]
y = map a x
有没有办法在 Ocaml 中编写类似的东西(可能使用外部库)? 如果不可能,有人可以解释为什么会出现这种限制吗?
【问题讨论】: