Functional Programming for Loosely-cooupled Multiprocessors