Academia.eduAcademia.edu

Functional Programming

description3,898 papers
group13,355 followers
lightbulbAbout this topic
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.
lightbulbAbout this topic
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.
Data science has emerged as a critical field driving innovation and decision-making across industries. At its core, data science relies on efficient data manipulation, rigorous statistical analysis, sophisticated machine learning model... more
Since the approach of building specialized systems from existing general-purpose components is becoming more common, there is a growing need for global optimization tools that accomplish the functional requirements of these systems. The... more
Tracing program executions is a promising technique to find bugs in lazy functional logic programs. In previous work we developed an extension of a heap based semantics for functional logic languages which generates a trace reflecting the... more
The version in the Kent Academic Repository may differ from the final published version. Users are advised to check for the status of the paper. Users should always cite the published version of record.
The version in the Kent Academic Repository may differ from the final published version. Users are advised to check for the status of the paper. Users should always cite the published version of record.
There exist several implementations of the functional logic lan-guage Curry: a transformation to Prolog and implementations of abstract machines for C and Java. We show that there are many advantages of a further implementation as a... more
Tracing program executions is a promising technique to find bugs in lazy functional logic programs. In previous work we developed an extension of a heap based semantics for functional logic languages which generates a trace reflecting the... more
In this work, we introduce a profiling scheme for modern functional logic languages covering notions like laziness, sharing, and non-determinism. Firstly, we instrument a natural (big-step) semantics in order to associate a symbolic cost... more
Most implementations of functional and functional logic languages treat numbers and the basic numeric operations as external entities. The main reason for this is efficiency. However, this basic design decision has many unfortunate... more
A lightweight approach to debugging functional logic programs by observations is presented, implemented for the language Curry. The Curry Object Observation System (COOSy) comprises a portable library plus a viewing tool. A programmer can... more
Functional programming languages are particularly well-suited for building automated reasoning systems, since (among other reasons) a logical term is well modeled by an inductive type, traversing a term can be implemented generically as a... more
Welcome to ELS 2011, the 4 th European Lisp Symposium. In the recent years, all major academic events have suffered from a decreasing level of attendance and contribution, Lisp being no exception to the rule. Organizing ELS 2011 in this... more
The Common Lisp metaobject protocol specifies a generic function named make-method-lambda to be called at macro-expansion time of the macro defmethod. In an article by Costanza and Herzeel, a number of problems with this generic function... more
This paper explores the work of John McCarthy on the LISP programming language and focuses on its underlying functional paradigms, its everlasting influence today, and its application in modern programming. The central research question... more
The use of algorithmic skeletons in parallel functional programming seems to overcome many of the problems functional languages have in their applicability for applications. This paper presents a parallel implementation method for the SIT... more
verbal explanations can do when it comes to justifying axioms and rules of inference. In the end, everybody must understand for himself. Per Martin- Liif 2
Time is a valuable resource, and efficiency is crucial for algorithm development. Programmers must find and write efficient algorithms with the best time complexity. Several factors affect the performance of an algorithm, such as... more
We give a complete, framework-independent proof that the class P of languages decidable in deterministic polynomial time coincides with the class DYP: languages decided by polytimeuniform, polynomial-size dynamic-programming computation... more
Some software measures are still not widely used in industry, despite the fact that they were defined many years ago, and some additional insights might be gained by revisiting them today with the benefit of recent lessons learned about... more
Agile programming emphasizes adaptability, iteration, and collaboration in software development. With the rise of quantum computing, new paradigms of probabilistic and hybrid computation challenge conventional Agile workflows. This paper... more
In 2014, Fire & Rescue New South Wales piloted the delivery of its home fire safety checks program (HFSC) aimed at engaging and educating targeted top "at risk" groups to prevent and prepare for fire. This pilot study aimed to assess the... more
This project is part of a master's thesis to implement eLTL logic, UMA University (Spain). A Flink application project using Scala to implement Event-driven Interval Temporal Logic (eLTL) that extends Linear temporal logic LTL for... more
This paper introduces the Lambda-Wave Calculus (W), a novel synthesis of lambda calculus and wave mechanics. We propose interpreting lambda abstractions as wave operators and applications as interference events, thereby mapping symbolic... more
In this paper, we present a variational framework for joint disparity and motion estimation in a sequence of stereo images. The problem involves the estimation of four dense fields: two motion fields and two disparity fields. In order to... more
Classical mechanics is deceptively simple. It is surprisingly easy to get the right answer with fallacious reasoning or without real understanding. To address this problem we use computational techniques to communicate a deeper... more
Classical mechanics is deceptively simple. It is surprisingly easy to get the right answer with fallacious reasoning or without real understanding. To address this problem we use computational techniques to communicate a deeper... more
We would like to thank the many people who have helped us to develop this book and the curriculum that it is designed to support. We have had substantial help from the wonderful students who studied with us in our classical mechanics... more
We propose a rule-based system built on top of the capabilities of Mathematica to program non-deterministic and partially defined computations. The system is called ρLog and has primitive operators for defining elementary rules and for... more
Abstract. Transformation rules are a convenient means to specify partially defined and nondeterministic computations. We describe a rulebased programming system which has primitive operators for defining elementary rules and for computing... more
Maude is a wide-spectrum reflective logical language based on rewriting logic that can be used to specify, prototype, and formally analyze concurrent software systems, specification languages, logics, and theorem provers. Because of its... more
Maude i s a h igh-level l anguage a nd a h igh-performance s ystem s upporting e xecutable speciÿ-cation a nd d eclarative p rogramming i n r ewriting l ogic. S ince r ewriting l ogic contains e quational l ogic, Maude a lso s upports e... more
While the ability to simulate nondeterminism and compute multiple solutions for a single query is a powerful and attractive feature of logic programming languages, it is expensive in both time and space. Since programs in such languages... more
Although the ability to simulate nondeterminism and to compute multiple solutions for a single query is a powerful and attractive feature of logic programming languages, it is expensive in both time and space. Since programs in such... 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
Bidirectional transformations (BXs) are a mechanism for maintaining consistency between multiple representations of related data. The lens framework, which usually constructs BXs from lens combinators, has become the mainstream approach... more
The version in the Kent Academic Repository may differ from the final published version. Users are advised to check for the status of the paper. Users should always cite the published version of record.
The version in the Kent Academic Repository may differ from the final published version. Users are advised to check for the status of the paper. Users should always cite the published version of record.
Defining functions by pattern matching over the arguments is advantageous for understanding and reasoning, but it tends to expose the implementation of a datatype. Significant effort has been invested in tackling this loss of modularity;... more
Matsuda et al. (Matsuda, K., Hu, Z., Nakano, K., Hamana, M. & Takeichi, M. (2007) Bidirectionalization transformation based on automatic derivation of view complement functions. In Proceedings of the International Conference on Functional... more
We describe an approach to introducing non-science majors to programming and computation in part by teaching them applets, servlets, and groupware applications. The course uses a dialect of didactic Scheme that is implemented in, and... more
This paper consists of two parts: the first provides the theoretical foundations for analyzing parallel programs and illustrates how the theory can be applied to estimate the execution time of a class of parallel programs being executed... more
Language constructs inspired by functional programming have made their way into most mainstream programming languages. Many researchers and developers consider that these constructs lead to programs that are more concise, reusable, and... more
Meta-Vectors introduce a novel algebraic paradigm designed to unify multi-dimensional computation, symbolic reasoning, and structural dynamics. Unlike traditional tensor systems, Meta-Vectors integrate three layers—algebraic operations,... more
The field of formal methods has grown significantly over the last few years because of the increased need for software systems that are error-free and reliable. Formal computer programming applies mathematical underpinnings to define,... more
HAL is a multi-disciplinary open access archive for the deposit and dissemination of scientific research documents, whether they are published or not. The documents may come from teaching and research institutions in France or abroad, or... more
The theory of object-oriented programming (OOP) has been used as a paradigm in the development of software engineering that has lasted over a few decades. Although software industry is changing rapidly with other languages and paradigm,... more
We consider the problem of inferring a grammar describing the output of a functional program given a grammar describing its input. Solutions to this problem are helpful for detecting bugs or proving safety properties of functional... more
We consider the problem of reconciling a dependently typed functional language with imperative features such as mutable higher-order state, pointer aliasing, and nontermination. We propose Hoare type theory (HTT), which incorporates... more
The FOLD v1 Specification defines a functional, category-inspired language for structural computation, physical modeling, and coherence-driven systems. Built on the principles of recursive generation, morphic depth, and coherence, FOLD... more
Download research papers for free!