gpt4 book ai didi

haskell - 乙烯基:组成记录类型别名

转载 作者:行者123 更新时间:2023-12-04 03:51:57 24 4
gpt4 key购买 nike

在 Vinyl 中,我可以为记录定义类型别名,以便更轻松地导出到其他模块:

import Data.Vinyl

name = Field :: "name" ::: String
age = Field :: "age" ::: Int
type Person = ["name" ::: String, "age" ::: Int]

现在假设我添加了另一个存储高度的字段。
height = Field :: "height" ::: Int

我想为包含 Person 的记录构造一个类型别名。和 height .天真地,这可能看起来像这样:
type MeasuredPerson = ("height" ::: Int) : Person

显然,这种语法不起作用!有没有办法做到这一点?是否有任何好的引用资料来解释似乎在这里使用的类型级数组语法?

最佳答案

事实证明,我设法错过了一个非常简单的答案:
Data.Vinyl.Rec为类型级别列表定义了 cons 和 append ,因此以下工作:

type MeasuredPerson = ("height" ::: Int) ': Person

如果我有两个列表,我可以将它们附加如下:
type Other = Person ++ Address

关于haskell - 乙烯基:组成记录类型别名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21042729/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com