种数据结构，必须只使用持久性数据类型比如元组、、，和基本类型如整数、字符、字符串。纯函数式数据类型，同它们的指令式对应者相比，经常以不同的方式表现。例如，具有以恒定时间来访问和更新的数组，是多数指令式语言的基本构件，而且很多指令式数据结构，比如散列表和二叉堆，也是基于数组的。数组可以被替代为映射或，它容许纯函数式实现，但是访问和更新时间复杂度是对数。因此，纯函数式数据结构可以用在非纯函数式语言中，但是它们可能不是能得到的最有效率的工具，特别是不要求持久性的情况下。一般而言，把一个指令式程序转换成纯函数式