在许多情况下,能够通过其名称作为字符串设置/获取记录字段(例如,将记录转换为/从命令行参数、HTTP 标头、SQL 查询结果或将小部件存储在 GUI 树中)会很有用在易于使用的记录等中)。函数可以有类型
setField::String->Val->Record->Record
getField::String->Record->Val
getFieldNames::Record->[String]
其中 Val 可能是可以转换为其他类型的东西(字符串、glib GValue,甚至是我在此处描述的可转换对象)
我已经开始编写一个这样做的库,并计划将其贡献给社区(它需要一些 GHC 扩展,可能包括 TemplateHaskell)......
我的问题-这样的东西已经存在了吗?有没有更好的方法从外部名称/值对填充记录?我找遍了,找不到。(镜头是相关的,但不要使用字符串名称)。
我认为这会很有用,但不想重新发明轮子。