archives

Misc News

I'm back... Going through my RSS feeds, two items caught my attention:

Tim Bray: Charles Nutter and Thomas Enebo, better known as “The JRuby Guys”, are joining Sun this month.

Jon Udell: Why argue about dynamic versus static languages when you can use both? Which discusses, among other things, why the first three versions of the IronPython compiler were written in Python, but today it's written in C#.

Rewriting Haskell Strings

This paper caught my eye, and it turned out to be really great. Unlike what the abstract might suggest their approach actually generalizes to any data type that can be faithfully converted to and from streams.

Rewriting Haskell Strings
by Duncan Coutts, Don Stewart, and Roman Leshchinskiy

Abstract:
The Haskell String type is notoriously inefficient. We introduce
a new data type, ByteString, based on lazy lists of byte arrays, combining
the speed benefits of strict arrays with lazy evaluation. Equational
transformations based on term rewriting are used to deforest intermediate
ByteStrings automatically. We describe novel fusion combinators
with improved expressiveness and performance over previous functional
array fusion strategies. A library for ByteStrings is implemented, providing
a purely functional interface, which approaches the speed of low-level
mutable arrays in C.

Available from http://www.cse.unsw.edu.au/~dons/papers/fusion.pdf

linux vs windows which is more compatible

i just what to know which os is more compatible either that is linux or windows

Folds, Church Encodings, Builds, and Short Cut Fusion for Nested Types: A Principled Approach


by Neil Ghani and Patricia Johann:

Initial algebra semantics is one of the cornerstones of the theory of modern programming languages. It provides support for fold combinators encapsulating structured recursion over data structures, thereby making it possible to both reason about and transform programs in principled ways. Recently, Ghani, Uustalu, and Vene extended the usual initial algebra semantics to support not only standard fold combinators for inductive types, but also Church encodings and build combinators for them. In addition to being theoretically useful in ensuring that build is seen as a fundamental part of the basic infrastructure for programming with inductive types, this development has practical merit: the fold and build combinators can be used to define fold/build rules which optimise modularly constructed programs by eliminating intermediate inductive data structures.

In this paper, we apply this extended initial algebra semantics to the theory and practice of programming with nested data types. In particular, we use it to simplify the theory of folds for nested types, as well as to provide the first Church encodings, build combinators, and fold/build fusion rules for them.

Code for "Folds, Church Encodings, Builds, and Short Cut Fusion for Nested Types: A Principled Approach"