gpt4 book ai didi

纯脚本嵌套行多态性

转载 作者:行者123 更新时间:2023-12-02 02:57:12 26 4
gpt4 key购买 nike

PureScript 示例 5.9 练习 1 和 2

我的解决方案:

type HasCity r s = { address :: { city :: String | r } | s }

livesInLA :: forall r s. HasCity r s -> Boolean
livesInLA { address: { city: "Los Angeles" } } = true
livesInLA _ = false

sameCity :: forall r s t u. HasCity r s -> HasCity t u -> Boolean
sameCity a b = a.address.city == b.address.city

问题:

forall r s t u。 HasCity r s -> HasCity t u 很讨厌...可以简化吗?

最佳答案

如果您想将行保留为具有可选字段,那不是真的。我可以建议的唯一轻微简化是:

forall r s. HasCity r s -> HasCity r s -> Boolean

但这将要求两个参数具有完全相同的结构(同时仍允许额外的标签),而原始类型只要求每条记录具有在相等性测试中使用的字段。

关于纯脚本嵌套行多态性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48655031/

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