The typechecking of programs with implicit type structure.
Proc. of the international symposium on Semantics of data types
FPCA '89 Proceedings of the fourth international conference on Functional programming languages and computer architecture
Functional programming with bananas, lenses, envelopes and barbed wire
Proceedings of the 5th ACM conference on Functional programming languages and computer architecture
Type inference with polymorphic recursion
ACM Transactions on Programming Languages and Systems (TOPLAS)
Bananas in space: extending fold and unfold to exponential types
FPCA '95 Proceedings of the seventh international conference on Functional programming languages and computer architecture
ML for the working programmer (2nd ed.)
ML for the working programmer (2nd ed.)
Introduction to Functional Programming
Introduction to Functional Programming
Polymorphic Type Schemes and Recursive Definitions
Proceedings of the 6th Colloquium on International Symposium on Programming
A Simple, Efficient, and Flexible Implementation of Flexible Arrays
MPC '95 Mathematics of Program Construction
MPC '98 Proceedings of the Mathematics of Program Construction
Journal of Functional Programming
Generalizing generalized tries
Journal of Functional Programming
Journal of Functional Programming
FUNCTIONAL PEARL: Enumerating the rationals
Journal of Functional Programming
Science of Computer Programming
A principled approach to programming with nested types in Haskell
Higher-Order and Symbolic Computation
Initial algebra semantics is enough!
TLCA'07 Proceedings of the 8th international conference on Typed lambda calculi and applications
Comparing approaches to generic programming in Haskell
SSDGP'06 Proceedings of the 2006 international conference on Datatype-generic programming
SSDGP'06 Proceedings of the 2006 international conference on Datatype-generic programming
AMAST'10 Proceedings of the 13th international conference on Algebraic methodology and software technology
Concrete stream calculus: An extended study
Journal of Functional Programming
“Scrap your boilerplate” revolutions
MPC'06 Proceedings of the 8th international conference on Mathematics of Program Construction
Adjoint folds and unfolds-An extended study
Science of Computer Programming
Hi-index | 0.00 |
One well known algorithm is the Fast Fourier Transform (FFT). An efficient iterative version of the FFT algorithm performs as a first step a bit-reversal permutation of the input list. The bit-reversal permutation swaps elements whose indices have binary representations that are the reverse of each other. Using an amortized approach, this operation can be made to run in linear time on a random-access machine. An intriguing question is whether a linear-time implementation is also feasible on a pointer machine, that is, in a purely functional setting. We show that the answer to this question is in the affirmative. In deriving a solution, we employ several advanced programming language concepts such as nested datatypes, associated fold and unfold operators, rank-2 types and polymorphic recursion.