User loginNavigation |
FunctionalLaziness Without All the Hard Work
Laziness Without All the Hard Work. Barzilay and Clements. FDPE 2005
While teaching programming languages courses, we have discovered that an extension to PLT Scheme allows the system to accommodate both lazy and strict evaluation in the same system. Moreover, the extension is simple and transparent. Finally, the simple nature of the extension means that the resulting system provides a rich environment for both lazy and strict programs without modification. A nice thing about this paper (aside from the fact that it uses the PLT module system) is the careful attention to the relationship between features of the language defined by the interpreter and the features of the defining language. By Ehud Lamm at 2005-08-31 08:18 | Functional | Teaching & Learning | login or register to post comments | other blogs | 8598 reads
Fast and Loose Reasoning is Morally Correct
Nils Anders Danielsson, Jeremy Gibbons, John Hughes and Patrik Jansson (2005). Fast and Loose Reasoning is Morally Correct.
We justify reasoning about non-total (partial) functional languages using methods seemingly only valid for total ones; this permits "fast and loose" reasoning without actually being loose... However, not to worry: The authors show that if two closed terms have the same semantics for total functions, they have related semantics for partial functions. Slides for ' Programming in Haskell'The website of Hutton's introductory Programming in Haskell book, now includes eleven powerpoint presentations covering most of the chapters in the book. Each set of slides is intended to be used for a one hour lecture. A Concurrent Lambda Calculus with FuturesA Concurrent Lambda Calculus with Futures
To all the fans of Mozart and especially Stockhausen :-) By Andris Birkmanis at 2005-07-17 14:05 | Functional | Lambda Calculus | login or register to post comments | other blogs | 6422 reads
A Plan for PugsAnyway. So, I ordered a bunch of books online including TaPL and ATTaPL so I could learn more about mysterious things like Category Theory and Type Inference and Curry-Howard Correspondence. A rather amusing interview about Pugs, the Perl 6 implementation written in Haskell. By Ehud Lamm at 2005-07-17 10:06 | Functional | Implementation | login or register to post comments | other blogs | 4974 reads
Termite: a Lisp for Distributed Computing
(via Patrick)
In short: take Scheme, remove mutations, add isolated processes with mailboxes, add message sending and receiving operations and an addressing mechanism. Termite is a Lisp for distributed computing (PDF paper and PDF presentation), providing an Erlang like model on top of Scheme. As the presentation says, the powerful abstraction facilities provided by Scheme made impelementing Termite rather easy and the implementation doesn't require much code. [Edit: here's a working link for the PDF paper] By Ehud Lamm at 2005-07-16 12:24 | Functional | Parallel/Distributed | 20 comments | other blogs | 55019 reads
A Formulae-as-Types Interpretation of Subtractive LogicA Formulae-as-Types Interpretation of Subtractive Logic
Yet another connection between subtractive logic and control. I remember the author mentioned on LtU, but I cannot find any citations. By Andris Birkmanis at 2005-06-29 11:46 | Functional | Lambda Calculus | Type Theory | 1 comment | other blogs | 5191 reads
GHC Survey ResultsThe results are in for the 2005 Glasgow Haskell Compiler user survey, with a summary and all the raw data. The comments were the highlight for me; see for instance Applications I use GHC for. (Previous LtU mention) By Matthew Morgan at 2005-06-28 15:17 | Functional | Implementation | Software Engineering | login or register to post comments | other blogs | 4925 reads
Backtracking, Interleaving, and Terminating Monad Transformers
Backtracking, Interleaving, and Terminating Monad Transformers. Oleg Kiselyov, Chung-chieh Shan, Daniel P. Friedman and Amr Sabry.
We design and implement a library for adding backtracking computations to any Haskell monad. Inspired by logic programming, our library provides, in addition to the operations required by the MonadPlus interface, constructs for fair disjunctions, fair conjunctions, conditionals, pruning, and an expressive top-level interface. Implementing these additional constructs is well-known in models of backtracking based on streams, but not known to be possible in continuation-based models. We show that all these additional constructs can be generically and monadically realized using a single primitive which we call msplit. We present two implementations of the library: one using success and failure continuations; and the other using control operators for manipulating delimited continuations. As you can expect from the author list, this is cool stuff. Enjoy! By Ehud Lamm at 2005-06-22 07:30 | Functional | Logic/Declarative | login or register to post comments | other blogs | 12032 reads
TypeCase: A Design Pattern for Type-Indexed Functions
Bruno C. d. S. Oliveira and Jeremy Gibbons. TypeCase: A Design Pattern for Type-Indexed Functions. Submitted for publication, June 2005.
A type-indexed function is a function that is defined for each member of some family of types. Haskell's type class mechanism provides open type-indexed functions, in which the indexing family can be extended at any time by defining a new type class instance. The purpose of this paper is to present TypeCase: a design pattern that allows the definition of closed type-indexed functions. It is inspired by Cheney and Hinze's work on lightweight approaches to generic programming. We generalise their techniques as a design pattern. Furthermore, we show that type-indexed functions with type-indexed types, and consequently generic functions with generic types, can also be encoded in a lightweight manner, thereby overcoming one of the main limitations of the lightweight approaches. A new paper in a field we follow quite closely (i.e., generic programming). The paper starts with a useful summary of important previous results, which is worth reading even if you don't plan on studying the whole paper. By Ehud Lamm at 2005-06-20 19:37 | Functional | Software Engineering | Type Theory | 1 comment | other blogs | 10531 reads
|
Browse archives
Active forum topics |
Recent comments
23 weeks 2 days ago
23 weeks 2 days ago
23 weeks 2 days ago
45 weeks 3 days ago
49 weeks 5 days ago
51 weeks 2 days ago
51 weeks 2 days ago
1 year 1 week ago
1 year 6 weeks ago
1 year 6 weeks ago