The functional programming language FP has been advocated as a means of avoiding many of the defects of conventional programming languages and has been regarded as a language suitable for expressing parallel algorithms. Systolic algorithms are parallel algorithms executing on a regular array of processing elements in which data are communicated locally and operated on rhythmically. In this paper, we show in detail how to systematically derive systolic algorithms from FP programs in object, structure, and sequencing levels. Through these three levels of programming, complex systolic algorithms are derived from simple ones by the use of apply-to-all theorems. Not only problem-size-dependent systolic algorithms but also problem-size-independent ones can be constructed by the method.