簡體   English   中英

Haskell將String轉換為嵌套列表

[英]Haskell Convert String to nested lists

我有一個疑問,haskell中有一個函數可以幫我解決這個問題嗎? 我試圖接收一個帶有列表形式的String作為輸入,並將其轉換為haskell中的實際列表

例如:

"[ [1,1] , [2,2] ]"轉換為[ [1,1] , [2,2] ]

例2:

轉換"[ [ [1,1], [1,1] ], [ [2,2] , [2,2] ] , [ [1,1] ,[1,1] ] ]"

[ [ [1,1], [1,1] ], [ [2,2] , [2,2] ] , [ [1,1] ,[1,1] ] ]

提前致謝!

是的, read該功能。 如果您在類型注釋中指定它應該讀取的內容,那么只要存在該類型的Read實例,您將獲得所需的結果。

read "[ [1,1] , [2,2] ]" :: [[Int]]
-- [[1,1],[2,2]]

read "[ [ [1,1], [1,1] ], [ [2,2] , [2,2] ] , [ [1,1] ,[1,1] ] ]" :: [[[Int]]]
-- [[[1,1],[1,1]],[[2,2],[2,2]],[[1,1],[1,1]]]

一種選擇可以是使用Aeson包並將文本視為json數據。

Prelude> :set -XOverloadedStings
Prelude> import Data.Aeson
Prelude Data.Aeson> jsString = "[ [ [1,1], [1,1] ], [ [2,2] , [2,2] ] , [ [1,1] ,[1,1] ] ]"
Prelude Data.Aeson> decode jsString :: Maybe [[[Int]]]
Just [[[1,1],[1,1]],[[2,2],[2,2]],[[1,1],[1,1]]]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM