The paper explores the application of a lazy functional language, Haskell, to a series of grid-based scientific problems---solution of the Poisson equation and Monte Carlo simulation of two theoretical models from statistical and particle physics. The implementations introduce certain abstractions of grid topology, making extensive use of the polymorphic features of Haskell. Updating is expressed naturally through use of infinite lists, exploiting the laziness of the language. Evolution of systems is represented by arrays of interacting streams. 1 Introduction Lazy functional languages have not, to date, made an enormous impact in scientific computing. Partly, this has to do with performance---codes written in these languages often run an order of magnitude slower than imperative codes, which limits their appeal for numbercrunching production codes 1 . Apart from that, there is a suspicion that programming without assignments or side-effects is difficult, or restrictive. Evidently, ..