Academia.eduAcademia.edu

Functional Programming

3,829 papers
13,245 followers
AI Powered
Functional programming is a programming paradigm that treats computation as the evaluation of mathematical functions and avoids changing state or mutable data. It emphasizes the use of first-class and higher-order functions, enabling a declarative approach to problem-solving and promoting code that is more predictable and easier to reason about.
AI Powered
Functional programming is a programming paradigm that treats computation as the evaluation of mathematical functions and avoids changing state or mutable data. It emphasizes the use of first-class and higher-order functions, enabling a declarative approach to problem-solving and promoting code that is more predictable and easier to reason about.
Leadership is often associated with symbols, one of which is the rank insignia worn by regional leaders in Indonesia. This symbol is believed to provide legitimacy and authority to leaders; however, its effectiveness remains debatable,... more
Igarashi and Kobayashi have proposed a general type system for checking whether resources such as files and memory are accessed in a valid manner. Their type system is, however, for call-byvalue λ-calculus with resource primitives, and... more
Ong has shown that the modal mu-calculus model checking problem (equivalently, the alternating parity tree automaton (APT) acceptance problem) of possibly-infinite ranked trees generated by order-n recursion schemes is n-EXPTIME complete.... more
Bugs in software is a very common problem, code reviews can help to catch bugs early on and detect which code is the most complex and may introduce bugs but when the code base is very large it can be costly to review all the code.... more
Bugs in software is a very common problem, code reviews can help to catchbugs early on and detect which code is the most complex and may introducebugs but when the code base is very large it can be ...
This paper describes a new variational method for estimating disparity from stereo images. The stereo matching problem is formulated as a convex programming problem in which an objective function is minimized under various constraints... more
In this two-part survey paper, we introduce linear logic and ludics, which were both introduced by Girard, in 1986 and 2001, respectively. They offer a thorough revisitation of mathematical logic from first principles, with inspiration... more
This paper describes how Crystal, a language based on familiar mathematical notation and lambda calculus, addresses the issues of programmability and performance for parallel supercomputers. Some scientifc programmers and theoreticians... more
This paper describes how Crystal, a language based on familiar mathematical notation and lambda calculus, addresses the issues of programmability and performance for parallel supercomputers. Some scientifc programmers and theoreticians... more
Dependent types can be used to capture useful properties about programs at compile time. However, developing dependently typed programs can be difficult in current systems. Capturing interesting program properties usually requires the... more
Preface This study is the continuation of a project in categorial proof theory, which occupied us in the last few years and yielded the book [22]. This is a kind of appendix to that book, whose results are applied here. An acquaintance... more
From the analogue of Böhm's Theorem proved for the typed lambda calculus, without product types and with them, it is inferred that every cartesian closed category that satisfies an equality between arrows not satisfied in free cartesian... more
This note analyzes in terms of categorial proof theory some standard assumptions about negation in the absence of any other connective. It is shown that the assumptions for an involutive negation, like classical negation, make a kind of... more
Proofs of coherence in category theory, starting from Mac Lane's original proof of coherence for monoidal categories, are sometimes based on confluence techniques analogous to what one finds in the lambda calculus, or in... more
This paper is about equality of proofs in which a binary predicate formalizing properties of equality occurs, besides conjunction and the constant true proposition. The properties of equality in question are those of a preordering... more
This paper introduces the Product-Difference Relationship Theorem, a novel mathematical identity that establishes a consistent relationship between a number, its square, and the product of the number with its immediate predecessor. The... more
The symposium ParaFPGA focuses on parallel techniques using FPGAs as accelerator in high performance computing. The green computing aspects of low power consumption at high performance were somewhat tempered by long design cycles and hard... more
Current garbage collectors leave a lot of garbage uncollected because they conservatively approximate liveness by reachability from program variables. In this paper, we describe a sequence of static analyses that takes as input a program... more
Scheme uses garbage collection for heap memory management. Ideally, garbage collectors should be able to reclaim all dead objects, i.e. objects that will not be used in future. However, garbage collectors collect only those dead objects... more
by R Yap
Functional constraints are an important constraint class in Constraint Programming (CP) systems, in particular for Constraint Logic Programming (CLP) systems. CP systems with finite domain constraints usually employ CSP-based solvers... more
Strategic term rewriting and attribute grammars are two powerful programming techniques widely used in language engineering. The former relies on strategies (recursion schemes) to apply term rewrite rules in defining transformations,... more
In this paper, we show how stream fusion, a program transformation technique used in functional programming, can be adapted for an Object-Oriented setting. This makes it possible to have more Stream operators than the ones currently... more
In this paper, we show how stream fusion, a program transformation technique used in functional programming, can be adapted for an Object-Oriented setting. This makes it possible to have more Stream operators than the ones currently... more
Attribute grammars are a powerfull, well-known formalism to implement and reason about programs which, by design, are conveniently modular. In this work we focus on a state of the art zipper-based embedding of classic attribute grammars... more
Denotational semantics is a powerful technique to formally define programming languages. However, language constructs are not always orthogonal, so many semantic equations in a definition may have to be aware of unrelated constructs... more
This paper presents techniques and tools to transform spreadsheets into relational databases and back. A set of data refinement rules is introduced to map a tabular datatype into a relational database schema. Having expressed the... more
Circular functional programs (necessarily evaluated lazily) have been used as algorithmic tools, as attribute grammar implementations, and as target for program transformation techniques. Classically, Richard Bird [1984] showed how to... more
Functional programs often combine separate parts using intermediate data structures for communicating results. Programs so defined are modular, easier to understand and maintain, but suffer from inefficiencies due to the generation of... more
Strategic term rewriting and attribute grammars are two powerful programming techniques widely used in language engineering. The former, relies on strategies to apply term rewrite rules in defining language transformations, while the... more
This thesis is a review of Koch, Diaz and Nokwara's (2012) study entitled "Restricted Schur Polynomials for Fermions and Integrability in the su(2|3) Sector." In their study, the authors introduce a powerful mathematical tool: restricted... more
Especially in early design phases, there is still potential to achieve collective design in architecture. To investigate the possibilities of mass collaboration, this study is based on a web application () which implements the same... more
The contemporary lyric's rich possibilities for resituating history and life stories still remain largely unexplored. Lyric poetry and history have always had, understandably, an uneasy relationship; the lyric is traditionally linked to... more
Type systems are widely used in programming languages as a powerful tool providing safety to programs, and forcing the programmers to write code in a clearer way. Functional logic languages have inherited Damas & Milner type system from... more
Type systems are widely used in programming languages as a powerful tool providing safety to programs. Functional logic languages have inherited Damas-Milner type system from their functional part due to its simplicity and popularity. In... more
The possibility of non-deterministic reductions is a distinctive feature of some declarative languages. Two semantics commonly adopted for non-determinism are call-time choicea notion that at the operational level is related to the... more
Coinduction refers to both a technique for the definition of infinite streams, so-called codata, and a technique for proving the equality of coinductively specified codata. This article first reviews coinduction in declarative... more
Coinduction refers to both a technique for the definition of infinite streams, so-called codata, and a technique for proving the equality of coinductively specified codata. This article first reviews coinduction in declarative... more
Now that processor speeds have reached a physical limit (approx 3 GHz) there is a strong trend to using computing platforms with multiple processors (cores) to extend performance. At the same time significant applications which are... more
Data structures and algorithms (DSA) form the foundation of efficient computer programming. This paper explores the core principles of data structures and algorithms, highlighting their classifications, applications, and importance in... more
s are not reviewed. We are delighted to publish 12 abstracts from 2015/16 in this round and hope that JFP readers will find many interesting dissertations in this collection that they may not otherwise have seen. If a student or advisor... more
demuestra el poder de la computación colaborativa en el ámbito matemático. Los números primos de Mersenne, aquellos que cumplen con la fórmula 𝑀 𝑝 = 2 𝑝-1 donde 𝑝 es también primo, han fascinado a los investigadores por su estructura y... more
A longstanding open question in algorithms and data structures is the time and space complexity of pure functional arrays. Imperative arrays provide update and lookup operations that require constant time in the RAM theoretical model, but... more
This thesis is a review of Koch, Diaz and Nokwara's (2012) study entitled "Restricted Schur Polynomials for Fermions and Integrability in the su(2|3) Sector." In their study, the authors introduce a powerful mathematical tool: restricted... more
GP 2 is an experimental programming language for computing by graph transformation. An initial interpreter for GP 2, written in the functional language Haskell, provides a concise and simply structured reference implementation. Despite... more
In modern functional logic languages like Curry or Toy, programs are possibly nonconfluent and non-terminating rewrite systems, defining possibly non-deterministic non-strict functions. Therefore, equational reasoning is not valid for... more
Planning systems such as FF-Metric [3] and SAPA [2] are able to deal with numerical knowledge to solve resources constraints added to the symbolic planning domain. This paper presents the NGP (Numerical Graph Planning) that is able to... more
Described is the implementation in XSLT of some major functional programming design patterns: • Higher-order functions (HOF) • Recursive iteration • Primitive recursion (folding) over lists and trees • Mapping of lists • Functional... more
We present a Revised Projectivity Calculus (denoted RC) that extends the scope of inclusion and exclusion inferences derivable under the Projectivity Calculus (denoted C) developed by Icard (2012). After pointing out the inadequacies of... more
Download research papers for free!