Results 1 
3 of
3
Linearity and Laziness
 In Proc. 5th ACM Conference on Functional Programming Languages and Computer
, 1990
"... 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 Gir ..."
Abstract

Cited by 18 (1 self)
 Add to MetaCart
(Show Context)
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 highlights some of the problems with the approach. Our implementation is based on a variant of the Gmachine [15, 1]. We give some benchmark figures to compare the performance of our machine with the original one. The results are disappointing: the cost of maintai...
Fixed Points and Extensionality in Typed Functional Programming Languages
, 1992
"... ..."
(Show Context)
Inductive, projective, and retractive types
, 1993
"... We give an analysis of classes of recursive types by presenting two extensions of the simplytyped lambda calculus. The first language only allows recursive types with builtin principles of wellfounded induction, while the second allows more general recursive types which permit nonterminating com ..."
Abstract

Cited by 1 (1 self)
 Add to MetaCart
(Show Context)
We give an analysis of classes of recursive types by presenting two extensions of the simplytyped lambda calculus. The first language only allows recursive types with builtin principles of wellfounded induction, while the second allows more general recursive types which permit nonterminating computations. We discuss the expressive power of the languages, examine the properties of reductionbased operational semantics for them, and give examples of their use in expressing iteration over large ordinals and in simulating both callbyname and callbyvalue versions of the untyped lambda calculus. The motivations for this work come from category theoretic models. 1