You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PHP的associative array对应Haskell中的哪种等效数据结构?

PHP关联数组在Haskell中的等效实现

你给出的PHP关联数组代码如下:

$array = [
    'A' => [1,2,3],
    'B' => [4,5,6],
    'C' => [7,8,9],
];

Haskell中最常用的等效键值对结构是Data.Map,属于官方维护的containers依赖包,实现为有序的平衡二叉树,支持高效的查找、插入、删除操作。

等效实现代码

-- 导入Data.Map模块,通常用qualified导入避免和Prelude的基础函数命名冲突
import qualified Data.Map as Map

-- 声明类型:键为String类型,值为Int列表类型
myMap :: Map.Map String [Int]
myMap = Map.fromList
    [ ("A", [1, 2, 3])
    , ("B", [4, 5, 6])
    , ("C", [7, 8, 9])
    ]

补充说明

  • 和PHP可变的关联数组不同,Data.Map是不可变结构,所有修改操作都会返回一个新的Map实例,不会修改原对象。
  • 取值操作对应PHP的$array['A'],在Haskell中写为 Map.lookup "A" myMap,返回Maybe [Int]类型,存在对应键时返回Just [1,2,3],不存在时返回Nothing,不会出现PHP访问不存在键的警告问题,安全性更高。
  • 你也可以根据场景选择其他更适配的键值对结构:
    • 键为Int类型时,可以用Data.IntMap,性能比普通Map更高
    • 不需要键有序的场景,可以用Data.HashMap(来自unordered-containers包),查找插入性能更优

内容的提问来源于stack exchange,提问作者Julian

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 14:27:05