我正在使用 Data.Sequence.mapWithIndex 訪問地圖函式當前迭代中串列 xs 中元素的索引。但是,如何訪問 checkPrefix 函式內的 xs 串列(存在于 prefixRule 函式中)?
checkPrefix :: Int -> LocalType -> LocalType
checkPrefix index (Act dir s lt) = do
-- here i would want to have access to the list xs in the prefixRule function
...
prefixRule :: [Localtype] -> IO()
prefixRule sequent = do
let newlist = S.mapWithIndex checkPrefix (S.fromList xs)
...
uj5u.com熱心網友回復:
您可以使用部分應用程式。您可以將該checkPrefix函式重寫為:
checkPrefix :: [LocalType] -> Int -> LocalType -> LocalType
checkPrefix xs index (Act dir s lt) = …
因此,這里的第一個引數xs是對整個串列的參考xs。
然后將前綴重寫為:
prefixRule :: [LocalType] -> IO ()
prefixRule sequent = do
let newlist = S.mapWithIndex (checkPrefix xs) (S.fromList xs)
…
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/370704.html
標籤:哈斯克尔
