据类型，同它们的指令式对应者相比，经常以不同的方式表现。例如，具有以恒定时间来访问和更新的数组，是多数指令式语言的基本构件，而且很多指令式数据结构，比如散列表和二叉堆，也是基于数组的。数组可以被替代为映射或，它容许纯函数式实现，但是访问和更新时间复杂度是对数。因此，纯函数式数据结构可以用在非纯函数式语言中，但是它们可能不是能得到的最有效率的工具，特别是不要求持久性的情况下。一般而言，把一个指令式程序转换成纯函数式程序，还需要确保原先可变的那些数据结构，变为显式的传递给并返回自更新它们的函数，这是叫做传递