我正在將zxcvbn password strength算法轉換爲Haskell。從Haskell中的大型靜態列表和地圖初始化數據結構
在第一步中,我從常見單詞列表(英文單詞,姓氏,男性名稱等)生成了幾個大型數據結構。這些列表是靜態的,只會偶爾進行重建,然後纔會重新編譯應用程序。
這些列表和地圖用於初始化實際的密碼強度算法。
當我將原始JavaScript轉換爲Scala時,我將靜態值保存爲JSON,該值在啓動時由算法加載。我只想生成初始化Scala val
s,但Java虛擬機對類有64KByte的限制,並且我的數據超過了(每個結構包含數千個單詞並且大於64KBytes)。
在Haskell中處理這個問題的最好方法是什麼?我可以只生成一個包含數據的源代碼模塊嗎?什麼是最大模塊大小限制?我搜索了Haskell2010報告,但找不到編譯器限制部分。
生成Haskell源代碼顯然是我的第一選擇,因爲代碼可以保持純粹。如果我需要在啓動時加載JSON並對其進行解析,那麼該模塊的那部分將是不純的。
感謝。我會看看另一個SOF問題和維基。讓我想起在C中編寫解析器生成器的日子。 – Ralph
這非常酷!我只是看着維基,特別喜歡將靜態數據存儲爲C數組的可能性,如果需要提高效率。 – Ralph