我有一个包含股票交易历史的 CSV 文件,其大小为 70 兆字节。我想在上面运行我的程序,但不想每次启动都等待 30 秒。
1. 只需将 CSV 文件翻译成 Haskell 源文件,如下所示:
From | TO
-------------------------------------------
1380567537,122.166,2.30243 | history = [
... | (1380567537,122.166,2.30243)
... | , ...
... | ]
2. 使用 Template Haskell 解析文件编译时。
尝试第一种方法后,我发现我的 GHC 在尝试编译一个列表(70 mb 源代码)3 小时后消耗了 12gb 的内存。
那么 TH 是唯一可用的方法吗?或者我可以在源文件中使用硬编码的大数据结构?为什么GHC不能编译文件?它会因为复杂的优化或其他原因而导致组合爆炸吗?