CLU reference manual
The Programmer's Apprentice: A Session with KBEmacs
IEEE Transactions on Software Engineering - Special issue on artificial intelligence and software engineering
Convergent term rewriting systems can be used for program transformation
on Programs as data objects
Listlessness is better than laziness II: composing listless functions
on Programs as data objects
Common LISP: the language
ACM Transactions on Programming Languages and Systems (TOPLAS)
An APL Compiler for a Vector Processor
ACM Transactions on Programming Languages and Systems (TOPLAS)
Communications of the ACM
Compilation and delayed evaluation in APL
POPL '78 Proceedings of the 5th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
APL: The Language and Its Usage
APL: The Language and Its Usage
The Design and Analysis of Computer Algorithms
The Design and Analysis of Computer Algorithms
POPL '84 Proceedings of the 11th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
Listlessness is better than laziness: Lazy evaluation and garbage collection at compile-time
LFP '84 Proceedings of the 1984 ACM Symposium on LISP and functional programming
Rewriting systems on FP expressions that reduce the number of sequences they yield
LFP '84 Proceedings of the 1984 ACM Symposium on LISP and functional programming
Applicative style programming, program transformation, and list operators
FPCA '81 Proceedings of the 1981 conference on Functional programming languages and computer architecture
An introduction to the construction and verification of Alphard programs
ICSE '76 Proceedings of the 2nd international conference on Software engineering
Automatic transformation of series expressions into loops
ACM Transactions on Programming Languages and Systems (TOPLAS)
INC: a language for incremental computations
ACM Transactions on Programming Languages and Systems (TOPLAS)
Hi-index | 0.00 |
The benefits of programming in a functional style are well known. For example, algorithms which are expressed as compositions of functions operating on series/vectors/streams of data elements are much easier to understand and modify than equivalent algorithms expressed as loops. Unfortunately, many programmers hesitate to use series expressions because they are typically implemented very inefficiently-the prime source of inefficiency being the creation of intermediate series objects.A restricted class of series expressions, obviously synchronizable series expressions, is defined which can be evaluated very efficiently because they do not require the creation of any intermediate series objects. A Common Lisp macro package has been implemented which supports obviously synchronizable series expressions. Using this macro package, programmers can obtain the advantages of expressing computations as series expressions without incurring any runtime overhead. Obviously synchronizable series expressions could be straightforwardly supported in any programming language.