functional programming language
Recently Published Documents


TOTAL DOCUMENTS

79
(FIVE YEARS 8)

H-INDEX

10
(FIVE YEARS 1)

2021 ◽  
Vol 5 (ICFP) ◽  
pp. 1-31 ◽  
Author(s):  
Zesen Qian ◽  
G. A. Kavvos ◽  
Lars Birkedal

We introduce coexponentials, a new set of modalities for Classical Linear Logic. As duals to exponentials, the coexponentials codify a distributed form of the structural rules of weakening and contraction. This makes them a suitable logical device for encapsulating the pattern of a server receiving requests from an arbitrary number of clients on a single channel. Guided by this intuition we formulate a system of session types based on Classical Linear Logic with coexponentials, which is suited to modelling client-server interactions. We also present a session-typed functional programming language for client-server programming, which we translate to our system of coexponentials.


Author(s):  
Yudai Tanabe ◽  
Luthfan Anshar Lubis ◽  
Tomoyuki Aotani ◽  
Hidehiko Masuhara

Author(s):  
LUKAS CONVENT ◽  
SAM LINDLEY ◽  
CONOR MCBRIDE ◽  
CRAIG MCLAUGHLIN

Abstract We explore the design and implementation of Frank, a strict functional programming language with a bidirectional effect type system designed from the ground up around a novel variant of Plotkin and Pretnar’s effect handler abstraction. Effect handlers provide an abstraction for modular effectful programming: a handler acts as an interpreter for a collection of commands whose interfaces are statically tracked by the type system. However, Frank eliminates the need for an additional effect handling construct by generalising the basic mechanism of functional abstraction itself. A function is but the special case of a Frank operator that interprets no commands. Moreover, Frank’s operators can be multihandlers which simultaneously interpret commands from several sources at once, without disturbing the direct style of functional programming with values. Effect typing in Frank employs a novel form of effect polymorphism which avoids mentioning effect variables in source code. This is achieved by propagating an ambient ability inwards, rather than accumulating unions of potential effects outwards. With the ambient ability describing the effects that are available at a certain point in the code, it can become necessary to reconfigure access to the ambient ability. A primary goal is to be able to encapsulate internal effects, eliminating a phenomenon we call effect pollution. Moreover, it is sometimes desirable to rewire the effect flow between effectful library components. We propose adaptors as a means for supporting both effect encapsulation and more general rewiring. Programming with effects and handlers is in its infancy. We contribute an exploration of future possibilities, particularly in combination with other forms of rich type systems.


2019 ◽  
Author(s):  
Andre Du Bois ◽  
Rodrigo Ribeiro

HMusic is a domain specific language based on music patterns that can be used to write music and live coding. The main abstractions provided by the language are patterns and tracks. Code written in HMusic looks like patterns and multi-tracks available in music sequencers, drum machines and DAWs. HMusic provides primitives to design and combine patterns generating new patterns. The objective of this paper is to extend the original design of HMusic to allow effects on tracks. We describe new abstractions to add effects on individual tracks and in groups of tracks, and how they influence the combinators for track composition and multiplication. HMusic allows the live coding of music and, as it is embedded in the Haskell functional programming language, programmers can write functions to manipulate effects on the fly. The current implementation of the language is compiled into Sonic Pi [1], and we describe how the compiler’s back-end was modified to support the new abstractions for effects. HMusic can be and can be downloaded from [2].


Author(s):  
Lucas Lacava ◽  
Mariana Godoy Vazquez

The goal of this research is to show the implementation of Deutsch-Jozsa quantum algorithm in functional programming language and its advantages comparing to Classical Computing. Are presented definitions and characteristics of the algorithm and the language Quipper, in which the implementation of the Deutsch-Jozsa quantum algorithm occurs.


Author(s):  
Juan Guti´errez-C´ardenas ◽  
Hernan Quintana-Cruz ◽  
Diego Mego-Fernandez ◽  
Serguei Diaz-Baskakov

2018 ◽  
Vol 25 (3) ◽  
pp. 89
Author(s):  
Arthur Giesel Vedana ◽  
Rodrigo Machado ◽  
Álvaro Freitas Moreira

This article introduces the V language, a purely functional programming language with a novel approach to records.Based on a system of type traits, V attempts to solve issues commonly found when manipulating records in purely functional programming languages.


Sign in / Sign up

Export Citation Format

Share Document