簡體   English   中英

Haskell:獲取列表的內存地址

[英]Haskell: get memory address of a list

有沒有辦法在Haskell中獲取數據元素的地址(比如列表元素)。

combineLists :: [a] -> [a] -> [a]

combineLists [] y = y
combineLists (x:xs) y = x : combineLists xs y

*Main> let x=[1,23, 12, 45]
*Main> x
[1,23,12,45]
*Main> let y =[90, 56, 78]
*Main> y
[90,56,78]
*Main> let z = combineLists x y
*Main> z
[1,23,12,45,90,56,78]

現在將z可以通過復制從x和y(內部的Haskell表示)元件完全構造或

將z是這樣的:z = [[來自x的所有元素的副本] y]

我想看看&y ==&z [4](z [4] = 90)。

還有一種方法可以使用類似於Python中的ctypes來轉儲內部表示。

謝謝。

您可以使用StableNamereallyUnsafePointerEquality# (注意名稱,不要在實際程序中使用;您還需要使用MagicHash擴展來調用它)來檢查兩個表達式是否引用同一個對象。 看看StableNames對reallyUnsafePtrEquality#有什么好處,反之亦然? 為了差異。

暫無
暫無

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

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