Computational lambda-calculus and monads
Proceedings of the Fourth Annual Symposium on Logic in computer science
Introduction to algorithms
LFP '90 Proceedings of the 1990 ACM conference on LISP and functional programming
Manipulating multilinked data structures in a pure functional language
Software—Practice & Experience
Functional programming with Miranda
Functional programming with Miranda
ML for the working programmer
M-structures: extending a parallel, non-strict, functional language with state
Proceedings of the 5th ACM conference on Functional programming languages and computer architecture
Report on the programming language Haskell: a non-strict, purely functional language version 1.2
ACM SIGPLAN Notices - Haskell special issue
Imperative functional programming
POPL '93 Proceedings of the 20th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Abstract data types in standard ML
Abstract data types in standard ML
PLDI '94 Proceedings of the ACM SIGPLAN 1994 conference on Programming language design and implementation
Algorithm 447: efficient algorithms for graph manipulation
Communications of the ACM
Introduction to Algorithms: A Creative Approach
Introduction to Algorithms: A Creative Approach
WG '92 Proceedings of the 18th International Workshop on Graph-Theoretic Concepts in Computer Science
Warm fusion: deriving build-catas from recursive definitions
FPCA '95 Proceedings of the seventh international conference on Functional programming languages and computer architecture
Functional programming with graphs
ICFP '97 Proceedings of the second ACM SIGPLAN international conference on Functional programming
ACM Computing Surveys (CSUR)
Implicit parameters: dynamic scoping with static types
Proceedings of the 27th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Applied Semantics, International Summer School, APPSEM 2000, Caminha, Portugal, September 9-15, 2000, Advanced Lectures
Inductive graphs and functional graph algorithms
Journal of Functional Programming
Modular lazy search for Constraint Satisfaction Problems
Journal of Functional Programming
Efficient graph algorithms using lazy monolithic arrays
Journal of Functional Programming
RTA'03 Proceedings of the 14th international conference on Rewriting techniques and applications
A functional, successor list based version of warshall's algorithm with applications
RAMICS'11 Proceedings of the 12th international conference on Relational and algebraic methods in computer science
Combining datatypes and effects
AFP'04 Proceedings of the 5th international conference on Advanced Functional Programming
Algebraic knowledge discovery using haskell
PADL'07 Proceedings of the 9th international conference on Practical Aspects of Declarative Languages
Simple rectangle-based functional programs for computing reflexive-transitive closures
RAMiCS'12 Proceedings of the 13th international conference on Relational and Algebraic Methods in Computer Science
Using relations to develop a haskell program for computing maximum bipartite matchings
RAMiCS'12 Proceedings of the 13th international conference on Relational and Algebraic Methods in Computer Science
Structural recursion for querying ordered graphs
Proceedings of the 18th ACM SIGPLAN international conference on Functional programming
Hi-index | 0.00 |
Depth-first search is the key to a wide variety of graph algorithms. In this paper we express depth-first search in a lazy functional language, obtaining a linear-time implementation. Unlike traditional imperative presentations, we use the structuring methods of functional languages to construct algorithms from individual reusable components. This style of algorithm construction turns out to be quite amenable to formal proof, which we exemplify through a calculational-style proof of a far from obvious strongly-connected components algorithm.