Functional Programming

14,000,000 Leading Edge Experts on the ideXlab platform

Scan Science and Technology

Contact Leading Edge Experts & Companies

Scan Science and Technology

Contact Leading Edge Experts & Companies

The Experts below are selected from a list of 66381 Experts worldwide ranked by ideXlab platform

Ulrich Schopp - One of the best experts on this subject based on the ideXlab platform.

  • Computation by interaction for space-bounded Functional Programming
    Information and Computation, 2016
    Co-Authors: Ugo Dal Lago, Ulrich Schopp
    Abstract:

    We consider the problem of supporting sublinear space Programming in a Functional Programming language. Writing programs with sublinear space usage often requires one to use special implementation techniques for otherwise easy tasks, e.g. one cannot compose functions directly for lack of space for the intermediate result, but must instead compute and recompute small parts of the intermediate result on demand. In this paper, we study how the implementation of such techniques can be supported by Functional Programming languages. Our approach is based on modelling computation by interaction using the Int construction of Joyal, Street & Verity. We derive Functional Programming constructs from the structure obtained by applying the Int construction to a term model of a given Functional language. The thus derived core Functional language intml is formulated by means of a type system inspired by Baillot & Terui's Dual Light Affine Logic. It can be understood as a Programming language simplification of Stratified Bounded Affine Logic. We show that it captures the classes flogspace and nflogspace of the functions computable in deterministic logarithmic space and in non-deterministic logarithmic space, respectively. We illustrate the expressiveness of intml by showing how typical graph algorithms, such a test for acyclicity in undirected graphs, can be represented in it.

  • Functional Programming in sublinear space
    European Symposium on Programming, 2010
    Co-Authors: Ugo Dal Lago, Ulrich Schopp
    Abstract:

    We consider the problem of Functional Programming with data in external memory, in particular as it appears in sublinear space computation. Writing programs with sublinear space usage often requires one to use special implementation techniques for otherwise easy tasks, e.g. one cannot compose functions directly for lack of space for the intermediate result, but must instead compute and recompute small parts of the intermediate result on demand. In this paper, we study how the implementation of such techniques can be supported by Functional Programming languages. Our approach is based on modeling computation by interaction using the Int construction of Joyal, Street & Verity. We derive Functional Programming constructs from the structure obtained by applying the Int construction to a term model of a given Functional language. The thus derived Functional language is formulated by means of a type system inspired by Baillot & Terui's Dual Light Affine Logic. We assess its expressiveness by showing that it captures logspace.

Meng Wang - One of the best experts on this subject based on the ideXlab platform.

  • How Functional Programming mattered
    National Science Review, 2015
    Co-Authors: John Hughes, Meng Wang
    Abstract:

    In 1989 when Functional Programming was still considered a niche topic, Hughes wrote a visionary paper arguing convincingly 'why Functional Programming matters'. More than two decades have passed. Has Functional Programming really mattered? Our answer is a resounding 'Yes!'. Functional Programming is now at the forefront of a new generation of Programming technologies, and enjoying increasing popularity and influence. In this paper, we review the impact of Functional Programming, focusing on how it has changed the way we may construct programs, the way we may verify programs, and fundamentally the way we may think about programs.

William R Cook - One of the best experts on this subject based on the ideXlab platform.

  • Functional Programming with structured graphs
    ACM SIGPLAN Notices, 2012
    Co-Authors: Bruno C D S Oliveira, William R Cook
    Abstract:

    This paper presents a new Functional Programming model for graph structures called structured graphs. Structured graphs extend conventional algebraic datatypes with explicit definition and manipulation of cycles and/or sharing, and offer a practical and convenient way to program graphs in Functional Programming languages like Haskell. The representation of sharing and cycles (edges) employs recursive binders and uses an encoding inspired by para- metric higher-order abstract syntax. Unlike traditional approaches based on mutable references or node/edge lists, well-formedness of the graph structure is ensured statically and reasoning can be done with standard Functional Programming techniques. Since the binding structure is generic, we can define many useful generic combinators for manipulating structured graphs. We give applications and show how to reason about structured graphs. Copyright © 2012 ACM.link_to_subscribed_fulltex

  • Functional Programming with structured graphs
    International Conference on Functional Programming, 2012
    Co-Authors: Bruno C D S Oliveira, William R Cook
    Abstract:

    This paper presents a new Functional Programming model for graph structures called structured graphs. Structured graphs extend conventional algebraic datatypes with explicit definition and manipulation of cycles and/or sharing, and offer a practical and convenient way to program graphs in Functional Programming languages like Haskell. The representation of sharing and cycles (edges) employs recursive binders and uses an encoding inspired by parametric higher-order abstract syntax. Unlike traditional approaches based on mutable references or node/edge lists, well-formedness of the graph structure is ensured statically and reasoning can be done with standard Functional Programming techniques. Since the binding structure is generic, we can define many useful generic combinators for manipulating structured graphs. We give applications and show how to reason about structured graphs.

  • ICFP - Functional Programming with structured graphs
    Proceedings of the 17th ACM SIGPLAN international conference on Functional programming - ICFP '12, 2012
    Co-Authors: Bruno C D S Oliveira, William R Cook
    Abstract:

    This paper presents a new Functional Programming model for graph structures called structured graphs. Structured graphs extend conventional algebraic datatypes with explicit definition and manipulation of cycles and/or sharing, and offer a practical and convenient way to program graphs in Functional Programming languages like Haskell. The representation of sharing and cycles (edges) employs recursive binders and uses an encoding inspired by parametric higher-order abstract syntax. Unlike traditional approaches based on mutable references or node/edge lists, well-formedness of the graph structure is ensured statically and reasoning can be done with standard Functional Programming techniques. Since the binding structure is generic, we can define many useful generic combinators for manipulating structured graphs. We give applications and show how to reason about structured graphs.

John Hughes - One of the best experts on this subject based on the ideXlab platform.

  • How Functional Programming mattered
    National Science Review, 2015
    Co-Authors: John Hughes, Meng Wang
    Abstract:

    In 1989 when Functional Programming was still considered a niche topic, Hughes wrote a visionary paper arguing convincingly 'why Functional Programming matters'. More than two decades have passed. Has Functional Programming really mattered? Our answer is a resounding 'Yes!'. Functional Programming is now at the forefront of a new generation of Programming technologies, and enjoying increasing popularity and influence. In this paper, we review the impact of Functional Programming, focusing on how it has changed the way we may construct programs, the way we may verify programs, and fundamentally the way we may think about programs.

Bruno C D S Oliveira - One of the best experts on this subject based on the ideXlab platform.

  • Functional Programming with structured graphs
    ACM SIGPLAN Notices, 2012
    Co-Authors: Bruno C D S Oliveira, William R Cook
    Abstract:

    This paper presents a new Functional Programming model for graph structures called structured graphs. Structured graphs extend conventional algebraic datatypes with explicit definition and manipulation of cycles and/or sharing, and offer a practical and convenient way to program graphs in Functional Programming languages like Haskell. The representation of sharing and cycles (edges) employs recursive binders and uses an encoding inspired by para- metric higher-order abstract syntax. Unlike traditional approaches based on mutable references or node/edge lists, well-formedness of the graph structure is ensured statically and reasoning can be done with standard Functional Programming techniques. Since the binding structure is generic, we can define many useful generic combinators for manipulating structured graphs. We give applications and show how to reason about structured graphs. Copyright © 2012 ACM.link_to_subscribed_fulltex

  • Functional Programming with structured graphs
    International Conference on Functional Programming, 2012
    Co-Authors: Bruno C D S Oliveira, William R Cook
    Abstract:

    This paper presents a new Functional Programming model for graph structures called structured graphs. Structured graphs extend conventional algebraic datatypes with explicit definition and manipulation of cycles and/or sharing, and offer a practical and convenient way to program graphs in Functional Programming languages like Haskell. The representation of sharing and cycles (edges) employs recursive binders and uses an encoding inspired by parametric higher-order abstract syntax. Unlike traditional approaches based on mutable references or node/edge lists, well-formedness of the graph structure is ensured statically and reasoning can be done with standard Functional Programming techniques. Since the binding structure is generic, we can define many useful generic combinators for manipulating structured graphs. We give applications and show how to reason about structured graphs.

  • ICFP - Functional Programming with structured graphs
    Proceedings of the 17th ACM SIGPLAN international conference on Functional programming - ICFP '12, 2012
    Co-Authors: Bruno C D S Oliveira, William R Cook
    Abstract:

    This paper presents a new Functional Programming model for graph structures called structured graphs. Structured graphs extend conventional algebraic datatypes with explicit definition and manipulation of cycles and/or sharing, and offer a practical and convenient way to program graphs in Functional Programming languages like Haskell. The representation of sharing and cycles (edges) employs recursive binders and uses an encoding inspired by parametric higher-order abstract syntax. Unlike traditional approaches based on mutable references or node/edge lists, well-formedness of the graph structure is ensured statically and reasoning can be done with standard Functional Programming techniques. Since the binding structure is generic, we can define many useful generic combinators for manipulating structured graphs. We give applications and show how to reason about structured graphs.