Affiliation:
1. University of Kansas, USA
Abstract
Monads and applicative functors are two ways that Haskell programmers bundle effectful primitives into effectful program fragments. In this paper, we investigate using monads and applicative functors to bundle remote effectful primitives, specifically aiming to amortize the cost of remote communications using bundling. We look at several ways of maximizing the bundling of primitives, drawing from the remote monad design pattern and Haxl system, and provide a taxonomy of mechanism for amortization, with examples. The result of this investigation is that monadic fragments can be efficiently bundled into packets, almost for free, when given a user-supplied packet transportation mechanism, and the primitives obey some simple pre- and post-conditions.
Publisher
Association for Computing Machinery (ACM)
Subject
Computer Graphics and Computer-Aided Design,Software
Reference26 articles.
1. Concurrent interactive processes in a pure functional language. In Proceedings Computing Science in the Netherlands;Achten Peter;CSN,1995
2. The Operational Monad Tutorial;Apfelmus Heinrich;The Monad.Reader,2010
3. Accelerating Haskell array codes with multicore GPUs
4. Compiling embedded languages
Cited by
1 articles.
订阅此论文施引文献
订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献
1. Deferring the details and deriving programs;Proceedings of the 4th ACM SIGPLAN International Workshop on Type-Driven Development - TyDe 2019;2019