The Dendritic Cell Algorithm (DCA) has been described in a number of different ways, sometimes resulting in incorrect implementations. We believe this is due to previous, imprecise attempts to describe the algorithm. The main contribution of this paper is to remove this imprecision through a new approach inspired by purely functional programming. We use new specification to implement the deterministic DCA in Haskell - the hDCA. This functional variant will also serve to introduce the DCA to a new audience within computer science. We hope that our functional specification will help improve the quality of future DCA related research and to help others understand further its algorithmic properties.