User loginNavigation |
FunctionalEff - Language of the FutureThis is just a series of blog posts so far, as far as I can tell. But Andrej Bauer's work has been mentioned here many times, I am finding these posts extremely interesting, and I'm sure I will not be alone. So without further ado... Programming With Effects. Andrej Bauer and Matija Pretnar.
By Matt Hellige at 2010-09-29 02:30 | Effects | Fun | Functional | Theory | 10 comments | other blogs | 35935 reads
Ocaml 3.12 releasedThis notice comes a little late, but the latest version of OCaml, version 3.12, has been released. Surprisingly, for a point release there's a lot of interesting new language features:
I'm especially intrigued by first-class modules, and the destructive signature operations, both of which should make it much easier to write libraries. Intel Concurrent Collections for Haskell
In short CnC purports to be a "a graph-based data-flow-esque deterministic parallel programming model". An open-source Haskell edition of the software was recently released on Hackage. A series of blog posts describe the implementation: #1, #2, #3, #4, #5 (the last post links to a draft paper). Personally, I would have preferred a more concise and down to earth description on the whole thing. If you have experiences to share, please do. By Ehud Lamm at 2010-06-24 05:07 | Functional | Parallel/Distributed | 7 comments | other blogs | 13108 reads
Milawa: A Self-Verifying Theorem Prover for an ACL2-Like LogicMilawa: A Self-Verifying Theorem Prover for an ACL2-Like Logic
This might help inform discussions of the relationship between the de Bruijn criterion (the "social process" of mathematics) and formal verification. I think it also serves as an interesting signpost on the road forward: it's one thing to say that starting with a de Bruijn core and evolving a more powerful prover is possible in principle; it's another thing for it to actually have been done. The author's thesis defense slides provide a nice, quick overview. By Paul Snively at 2010-05-29 17:49 | DSL | Functional | Implementation | Lambda Calculus | Logic/Declarative | Semantics | 11 comments | other blogs | 13760 reads
Functional Pearl: Species and Functors and Types, Oh My!Functional Pearl: Species and Functors and Types, Oh My! Brent Yorgey, draft. We've discussed species many times before, and discussed at least one introduction for functional programmers. Here's another, this time considerably less technical. I would say this paper succeeds fairly well in giving a conceptual overview and some useful intuition. If you found the Carette and Uszkay paper sketchy in places, you may find this a gentler introduction. On the other hand, I don't really see how it counts as a Functional Pearl... Programming CNC machines in HaskellWhile I like the general idea, it seems this project didn't go far enough. What I think would be cool is to develop are DSLs that compile to g-code. For example, putting my hacker hat on, I think it might be fun to build a DSL for describing mechanical (analog) computers, this will compile into g-code for cams, shafts, gears etc. that could then be manufactured using CNC machines and/or 3D printers... The Monad ZipperThe Monad Zipper by Bruno Oliveira and Tom Schrijvers
The monad zipper gives us new ways to compose monadic code operating with different transformer stacks. To put it another way, it extends our ability to compose systems using different ranges of effects. By Philippa Cowderoy at 2010-04-26 16:18 | DSL | Functional | 14 comments | other blogs | 19171 reads
Can functional programming be liberated from the von Neumann paradigm?Conal Elliott's weblog post from January, Can functional programming be liberated from the von Neumann paradigm?, makes the case that the kind of coupling to state which Haskell programs making use of the IO monad have, raise problems of the same sort that led to pure functional programming in the first place. Conal then goes on to sketch, with reference to his work on FRP and denotational design, some ideas about where purity should be leading language design. Objects to Unify Type Classes and GADTsObjects to Unify Type Classes and GADTs, by Bruno C. d. S. Oliveira and Martin Sulzmann:
A very interesting paper on generalizing and unifying type classes and GADTs. Classes are now first-class values, resulting in a language that resembles a traditional, albeit more elegant, object-oriented language, and which supports a form of first-class "lightweight modules". The language supports the traditional use of implicit type class dispatch, but also supports explicit dispatch, unlike Haskell. The authors suggest this could eliminate much of the duplication in the Haskell standard library of functions that take a type class or an explicit function, eg. insert/insertBy and sort/sortBy, although some syntactic sugar is needed to make this more concise. Classes are open to extension by default, although a class can also be explicitly specified as "sealed", in which case extension is forbidden and you can pattern match on the cases. Furthermore, GADTs can now also carry methods, thus introducing dispatch to algebraic types. This fusion does not itself solve the expression problem, though it does ease the burden through the first-class support of both types of extension. You can see the Scala influences here. I found this paper via the Haskell sub-reddit, which also links to a set of slides. The authors acknowledge Scala as an influence, and as future work, suggest extensions like type families and to support more module-like features, such as nesting and opaque types. By naasking at 2010-02-22 21:51 | Functional | Object-Functional | OOP | Theory | Type Theory | 19 comments | other blogs | 23675 reads
A Lambda Calculus for Real AnalysisA Lambda Calculus for Real Analysis
Paul Taylor is deadly serious about the intersection of logic, mathematics, and computation. I came across this after beating my head against Probability Theory: The Logic of Science and Axiomatic Theory of Economics over the weekend, realizing that my math just wasn't up to the tasks, and doing a Google search for "constructive real analysis." "Real analysis" because it was obvious that that was what both of the aforementioned texts were relying on; "constructive" because I'd really like to develop proofs in Coq/extract working code from them. This paper was on the second page of results. Paul's name was familiar (and not just because I share it with him); he translated Jean-Yves Girard's regrettably out-of-print Proofs and Types to English and maintains a very popular set of tools for typesetting commutative diagrams using LaTeX. By Paul Snively at 2010-02-16 22:00 | Category Theory | Functional | Lambda Calculus | Logic/Declarative | Meta-Programming | Semantics | Type Theory | 9 comments | other blogs | 15835 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 4 days ago
49 weeks 5 days ago
51 weeks 3 days ago
51 weeks 3 days ago
1 year 2 weeks ago
1 year 6 weeks ago
1 year 6 weeks ago