【发布时间】:2017-03-20 04:14:49
【问题描述】:
就我的理解而言,在 purescript 中,{foo :: Foo} 脱糖到 Record ("foo" :: Foo)。我可以做类似Record ("F" :: Foo) 的东西吗?在记录访问语法中看起来如何? thing.F 在语法上是否有效?
【问题讨论】:
标签: syntax record capitalization purescript
就我的理解而言,在 purescript 中,{foo :: Foo} 脱糖到 Record ("foo" :: Foo)。我可以做类似Record ("F" :: Foo) 的东西吗?在记录访问语法中看起来如何? thing.F 在语法上是否有效?
【问题讨论】:
标签: syntax record capitalization purescript
引用字段正是这样做的方式,无论是在类型中:
type MyRecord = { "Usually impossible field name" :: Boolean }
在访问器/模式中:
make :: Boolean -> MyRecord
make = { "Usually impossible field name": _ }
get :: MyRecord -> Boolean
get = _."Usually impossible field name"
update :: MyRecord -> Boolean -> MyRecord
update = _ { "Usually impossible field name" = _ }
以这种方式引用字段允许您使用大写字母、符号、数字等任意命名记录字段。
这有点类似于 JavaScript 中的obj["property"],但您只能使用字符串字面量作为属性名称,而不是任意值。
【讨论】: