User loginNavigation |
FunctionalHaskell vs. Erlang, Reloaded
Erlang and Haskell compared... Want to know the conclusion?
I am sure you'll find a lot to disagree with in this article... By Ehud Lamm at 2006-01-23 17:46 | Critiques | Functional | Parallel/Distributed | 16 comments | other blogs | 67869 reads
Spring School on Datatype-Generic Programming 2006
If you are interested in generic programming and have some free time in April, this is for you.
LtU readers will recognize the names of the lecturers, if not the specific presentation titles. Among the lecturers are Jeremy Gibbons, Ralf Hinze, Ralf Lämmel and Tim Sheard (who will talk about putting Curry-Howard to work). Accelerator: simplified programming of graphics processing units for general-purpose uses via data-parallelism
Accelerator: simplified programming of graphics processing units for general-purpose uses via data-parallelism. David Tarditi, Sidd Puri, and Jose Oglesby.
GPUs are difficult to program for general-purpose uses. Programmers must learn graphics APIs and convert their applications to use graphics pipeline operations. We describe Accelerator, a system that simplifies the programming of GPUs for general-purpose uses. Accelerator provides a high-level data-parallel programming model as a library that is available from a conventional imperative programming language. The library translates the data-parallel operations on-the-fly to optimized GPU pixel shader code and API calls. A library provides programmers with a new type of array, a data-parallel array. Data-parallel arrays differ from conventional arrays in two ways. First, the only operations available on them are aggregate operations over entire input arrays. The operations are a subset of those found in languages like APL. They include element-wise arithmetic and comparison operators, reductions to compute min, max, product, and sum, and transformations on entire arrays. Second, the data-parallel arrays are functional: each operation produces an entirely new data-parallel array. By Ehud Lamm at 2005-12-29 11:43 | Functional | Implementation | Parallel/Distributed | 21 comments | other blogs | 16142 reads
Exceptional syntax
A nice paper apropos of tail calls and exceptions:
Nick Benton and Andrew Kennedy. 2001. Exceptional syntax. Journal of Functional Programming 11(4): 395-410. By Chung-chieh Shan at 2005-12-22 17:12 | Functional | Type Theory | 16 comments | other blogs | 44719 reads
The Haskell Programmer's Guide to the IO Monad --- Don't Panic
The Haskell Programmer's Guide to the IO Monad - Don't Panic. Stefan Klinger.
Why do I need a monad for IO in Haskell? The standard explanation is, that the IO monad hides the non-functional IO actions ---which do have side effects--- from the functional world of Haskell. But how does this "hiding" work, apart from having IO actions disappearing beyond the borders of my knowledge? It's hard for me to judge how successful this tutorial is going to be with beginners, but it seems well written. The target audience isn't porgrammers trying to learn about monads as a programming construct, but rather programmers that want to get a taste of theory. By Ehud Lamm at 2005-12-15 20:47 | Category Theory | Functional | 22 comments | other blogs | 62188 reads
Polymorphic Regular Tree Types and Patterns
It will appear in POPL '06. By Jim Apple at 2005-12-14 03:16 | Functional | login or register to post comments | other blogs | 8374 reads
Djinn, a theorem prover in Haskell, for Haskell.Lennart Augustsson announced Djinn on the Haskell mailing list recently. He included this demonstration:
Don Stewart wrote a lambdabot plugin for Djinn a few hours later. 15:39:01 @djinn a -> b -> a 15:39:02 x :: a -> b -> a 15:39:02 x x1 _ = x1 15:39:11 @djinn (a -> b -> c) -> ((a,b) -> c) 15:39:11 x :: (a -> b -> c) -> (a, b) -> c 15:39:11 x x1 (v3, v4) = x1 v3 v4 15:39:27 @djinn (a -> b) -> (c -> b) -> Either a c -> b 15:39:27 x :: (a -> b) -> (c -> b) -> Either a c -> b 15:39:27 x x1 x2 x3 = case x3 of 15:39:27 Left l4 -> x1 l4 15:39:27 Right r5 -> x2 r5 15:40:06 @djinn a -> [a] -> [a] 15:40:07 x :: a -> [a] -> [a] 15:40:07 x _ x2 = x2 15:40:08 @help djinn 15:40:09 @djinn 15:40:09 Generates Haskell code from a type. Djinn has proven to be much fun on #haskell. Generic viewsStefan Holdermans. Master's thesis, Utrecht University, 2005. In the conclusion, in a comparison to SYB, this paper notes:
Before noting the impossibility of even this approach to encode generic fold. Module Mania: A Type-Safe, Separately Compiled, Extensible InterpreterModule Mania: A Type-Safe, Separately Compiled, Extensible Interpreter
This is an excellent example of how the ML module language doesn't merely provide encapsulation but also strictly adds expressive power. It also demonstrates how a dynamic language (Lua) can be embedded in the statically-typed context of ML. Finally, it demonstrates that none of this need come at the expense of separate compilation or extensibility. Norman Ramsey's work is always highly recommended. By Paul Snively at 2005-12-07 14:58 | DSL | Functional | General | Implementation | Semantics | Theory | Type Theory | login or register to post comments | other blogs | 8862 reads
Fusion in less space
Fusion in less space. Catherine Hope and Graham Hutton
In functional programming, programs are often written in a compositional style. There are many advantages to this, such as clarity and modularity, but the resulting programs can be inefficient in terms of space, due to the use of intermediate data structures. These structures may be removed using deforestation techniques, but whether the space performance is actually improved depends on the structures being consumed in the same order that they are produced. In this paper we explore this problem and suggest a solution, in particular for lists and then generalising to trees. Since the paper discusses many examples, it is quite enjoyable to read and can even serve as an introduction to folds. By Ehud Lamm at 2005-12-07 11:39 | Functional | login or register to post comments | other blogs | 7855 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