A criticism often levelled at functional languages is that they do not cope elegantly or efficiently with problems involving changes of state. In a recent paper [26], Wadler has proposed a new approach to these problems. His proposal involves the use of a type system based on the linear logic of Girard [7]. This allows the programmer to specify the "natural" imperative operations without at the same time sacrificing the crucial property of referential transparency. In this paper we investigate the practicality of Wadler's approach, describing the design and implementation of a variant of Lazy ML [2]. A small example program shows how imperative operations can be used in a referentially transparent way, and at the same time it...
The idea of introducing logical variables into functional programming languages has been proposed fo...
The linear logic of J.-Y. Girard suggests a new type system for functional languages, one which supp...
International audienceLinear type systems have a long and storied history, but not a clear path forw...
The rift between imperative and functional programming is one of the oldest in computing. Imperative...
AbstractLinear Logic [6] provides a refinement of functional programming and suggests a new implemen...
International audienceInstead of a monolithic programming language trying to cover all features of i...
Most type systems that support polymorphic functions are based on a version of System-F. We argue th...
We present Fo, an extension of System F that uses kinds to distinguish between linear and unrestrict...
Most type systems that support polymorphic functions are based on a version of System-F. We argue th...
Lazy functional languages such as LML [4], Haskell [21], and Concurrent Clean [35] typically feature...
We present a new parallel implementation of lazy ML. Our scheme is a direct extension of the G-machi...
Today's type-safe low-level languages rely on garbage collection to recycle heap-allocated objects ...
In this paper we argue for the importance of lazy state, that is, sequences of imperative (destructi...
Functional languages can be enriched with logic variables to provide new computational features suc...
Partial evaluation is a method for program specialization based on fold/unfold transformations [8, 2...
The idea of introducing logical variables into functional programming languages has been proposed fo...
The linear logic of J.-Y. Girard suggests a new type system for functional languages, one which supp...
International audienceLinear type systems have a long and storied history, but not a clear path forw...
The rift between imperative and functional programming is one of the oldest in computing. Imperative...
AbstractLinear Logic [6] provides a refinement of functional programming and suggests a new implemen...
International audienceInstead of a monolithic programming language trying to cover all features of i...
Most type systems that support polymorphic functions are based on a version of System-F. We argue th...
We present Fo, an extension of System F that uses kinds to distinguish between linear and unrestrict...
Most type systems that support polymorphic functions are based on a version of System-F. We argue th...
Lazy functional languages such as LML [4], Haskell [21], and Concurrent Clean [35] typically feature...
We present a new parallel implementation of lazy ML. Our scheme is a direct extension of the G-machi...
Today's type-safe low-level languages rely on garbage collection to recycle heap-allocated objects ...
In this paper we argue for the importance of lazy state, that is, sequences of imperative (destructi...
Functional languages can be enriched with logic variables to provide new computational features suc...
Partial evaluation is a method for program specialization based on fold/unfold transformations [8, 2...
The idea of introducing logical variables into functional programming languages has been proposed fo...
The linear logic of J.-Y. Girard suggests a new type system for functional languages, one which supp...
International audienceLinear type systems have a long and storied history, but not a clear path forw...