English
Related papers

Related papers: When You Should Use Lists in Haskell (Mostly, You …

200 papers

This paper presents PFLP, a library for probabilistic programming in the functional logic programming language Curry. It demonstrates how the concepts of a functional logic programming language support the implementation of a library for…

Programming Languages · Computer Science 2019-05-20 Sandra Dylus , Jan Christiansen , Finn Teegen

Implementing a complex concept as an executable model in a strongly typed, purely functional language hits a sweet spot between mere simulation and formal specification. For research and education it is often desirable to enrich the…

Programming Languages · Computer Science 2020-08-31 Baltasar Trancón y Widemann , Markus Lepper

Large Language Models (LLMs) have demonstrated great promise in generating code, especially when used inside an evolutionary computation framework to iteratively optimize the generated algorithms. However, in some cases they fail to…

Neural and Evolutionary Computing · Computer Science 2025-03-24 Niki van Stein , Anna V. Kononova , Lars Kotthoff , Thomas Bäck

In this paper, we study how object-oriented classes are used across thousands of software packages. We concentrate on "usage diversity'", defined as the different statically observable combinations of methods called on the same object. We…

Software Engineering · Computer Science 2018-07-06 Diego Mendez , Benoit Baudry , Martin Monperrus

Let $\{\phi_p\}$ be an optimal G\"odel numbering of the family of computable functions (in Schnorr's sense), where $p$ ranges over binary strings. Assume that a list of strings $L(p)$ is computable from $p$ and for all $p$ contains a…

Logic · Mathematics 2014-11-05 Nikolay Vereshchagin

This article introduces hinted dictionaries for expressing efficient ordered sets and maps functionally. As opposed to the traditional ordered dictionaries with logarithmic operations, hinted dictionaries can achieve better performance by…

Programming Languages · Computer Science 2022-06-10 Amir Shaikhha , Mahdi Ghorbani , Hesam Shahrokhi

Large Language Models (LLMs) are used for many different software engineering tasks. In software architecture, they have been applied to tasks such as classification of design decisions, detection of design patterns, and generation of…

Software Engineering · Computer Science 2025-05-23 Larissa Schmid , Tobias Hey , Martin Armbruster , Sophie Corallo , Dominik Fuchß , Jan Keim , Haoyu Liu , Anne Koziolek

Batch codes are of potential use for load balancing and private information retrieval in distributed data storage systems. Recently, a special case of batch codes, termed functional batch codes, was proposed in the literature. In functional…

Information Theory · Computer Science 2026-05-26 Kristiina Oksner , Henk D. L. Hollmann , Ago-Erik Riet , Vitaly Skachek

Despite the unarguable importance of Stack Overflow (SO) for the daily work of many software developers and despite existing knowledge about the impact of code duplication on software maintainability, the prevalence and implications of code…

Software Engineering · Computer Science 2020-02-05 Sebastian Baltes , Christoph Treude

These notes describe the most efficient hash functions currently known for hashing integers and strings. These modern hash functions are often an order of magnitude faster than those presented in standard text books. They are also simpler…

Data Structures and Algorithms · Computer Science 2020-05-12 Mikkel Thorup

The blocks editor, such as the editor in Scratch, is widely applied for visual programming languages (VPL) nowadays. Despite it's friendly for non-programmers, it exists three main limitations while displaying block codes: (1) the…

Human-Computer Interaction · Computer Science 2016-05-04 Sheng-yi Hsu , Yuan-fu Lou , Chuen-tsai Sun

Programming language definitions assign formal meaning to complete programs. Programmers, however, spend a substantial amount of time interacting with incomplete programs -- programs with holes, type inconsistencies and binding…

Programming Languages · Computer Science 2017-03-28 Cyrus Omar , Ian Voysey , Michael Hilton , Joshua Sunshine , Claire Le Goues , Jonathan Aldrich , Matthew A. Hammer

Modern software systems are increasingly including machine learning (ML) as an integral component. However, we do not yet understand the difficulties faced by software developers when learning about ML libraries and using them within their…

Software Engineering · Computer Science 2019-07-01 Md Johirul Islam , Hoan Anh Nguyen , Rangeet Pan , Hridesh Rajan

Pattern-matching programming is an example of a rule-based programming style developed in functional languages. This programming style is intensively used in dialects of ML but is restricted to algebraic data-types. This restriction limits…

Programming Languages · Computer Science 2009-12-25 Julien Cohen

In machine learning (ML), researchers and engineers seem to be at odds. System implementers would prefer models to be declarative, with detailed type information and semantic restrictions that allow models to be optimised, rearranged and…

Programming Languages · Computer Science 2022-06-23 Michael Innes

Sketching is an important means of communication in software engineering practice. Yet, there is little research investigating the use of sketches. We want to contribute a better understanding of sketching, in particular its use during…

Software Engineering · Computer Science 2016-12-06 Sebastian Baltes , Stefan Wagner

Relational programming enables program synthesis through a verifier-to-solver approach. An earlier paper introduced a functional conversion that mitigated some of the inherent performance overhead. However, the conversion was inelegant: it…

Programming Languages · Computer Science 2025-11-04 Igor Engel , Ekaterina Verbitskaia

A key function of a software system is its ability to facilitate the manipulation of data, which is often implemented using a flavour of the Structured Query Language (SQL). To develop the data operations of software (i.e, creating,…

Software Engineering · Computer Science 2023-01-26 Daniel Alencar da Costa , Natalie Grattan , Nigel Stanger , Sherlock A. Licorish

This paper studies useful sharing, which is a sophisticated optimization for lambda-calculi, in the context of call-by-need evaluation in presence of open terms. Useful sharing turns out to be harder in call-by-need than in call-by-name or…

Logic in Computer Science · Computer Science 2021-10-29 Beniamino Accattoli , Maico Leberle

Motivated by experience in programming and in the teaching of programming, we make another assault on the longstanding problem of debugging. Having explored why debuggers are not used as widely as one might expect, especially in functional…

Programming Languages · Computer Science 2024-11-04 John Whitington