我在业余时间用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个列表条目,所以也许在错误的地方担心速度?