我在业余时间用 Haskell 编写一个词汇训练器。
我有一个文件,其中条目被建模为代数数据类型,看起来像
Word { _frq=1
, _fra="le"
, _eng="the; him, her, it, them"
, _deu="der,die,das; er,sie,es"
, _uses=[Determiner [], Pronoun []]
, _phrase=" vive la politique, vive l'amour"
, _sentence="long live politics, long live love"
, _satz="Lang lebe die Politik, lang lebe die Liebe."
}
最常见的是德语翻译_deu=
,_satz=
通常只是一个我想在程序中更新的空字符串。
现在我有几个问题: 1. 是否有使用 Haskell 数据类型的数据库(我也非常希望数据库中的类型安全)?我发现的东西是 HDBC 与 MySQL 等的绑定,以及其他一些 xml/JSON 的东西。
- 如果我更新文件而不是使用数据库,有没有办法重新编译整个程序 - 这样做会有点乏味。
第三个问题
我想将学习的词汇保存在需要经常更新的数据结构中,因为在每个学习步骤中,我都会更新一个表示该单词知识的数字 - 并在插入/或之后对该数据结构进行排序。然后我根据它在这个数据结构中的位置选择一个新词。列表似乎对于进行完整的列表遍历效率低下,如果有更好的解决方案,排序是一项很大的工作。最后一个注释我确实只有 5000 个列表条目,所以可能是担心速度在错误的地方?