A Functional Quantum Programming Language

We introduce the language QML, a functional language for quantum computations on finite types. Its design is guided by its categorical semantics: QML programs are interpreted by morphisms in the category FQC of finite quantum computations realizable as quantum gates.

Warning - it's a draft. From the Types Forum.

A simple equation solver using attribute access and introspection

A nice hack which makes use of several language features to create a fun programming experience (or "user inteface" if you want).

Description Logics in Literate Haskell

Experiments from Graham Klyne:

This file is my attempt to better understand the structure and uses
of Description Logic (DL) languages for knowledge reresentation and inference, with the ultimate aim of better understanding the capabilities and limitations of the Semantic Web ontology language OWL, whose design draws much from Description Logic languages.

See also rdfweb-dev post, "Haskell vs. Ada vs. C++ vs. Awk vs. ..., An Experiment in Software Prototyping Productivity" (PS format)

SAT 3 Proof with E Prover via OWL

An interesting little Semantic Web-related development reported by Jos De Roo (creator of the Java/C# Euler inference engine). He's got the E Prover (an equational theorem prover for clausal logic), to find a proof for the OWL (Web Ontology Language) test case "inconsistent502" (RDF, variations), which is a Description Logic encoding of one of the classic SAT 3 problems.

Combining lazy and eager evaluation of terms

In an attempt to combine some of the benefits of lazy and eager evaluation, I have implemented a language with an evaluation strategy which is strict with respect to divergence, but performs lazy evaluation on certain intermediate subterms to allow a more expressive use of recursion.

Does anybody have any references to work on similar evaluation schemes?

Tim Sweeney started this interesting Types-list thread. A summary of the responses he receieved is here.

Erlang tutorial

Seems like a nice tutorial.

Includes the expected chapters on concurrent programming and robustness, of course.

Pythologic - Prolog syntax in Python

The "recipe" for Pythologic is given and discussed here:

http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/303057

The discussion is interesting in itself, as it identifies the "wildly unpythonic" and "abusive" "overhaul of the function semantics" involved. One thing I've always liked about Python is the extent to which it supports this kind of metaprogramming. You can, if the mood takes you, quite seriously deform the language's conventional semantics. That isn't necessarily a good thing; but it can be fun sometimes.

David Mertz has written an article on embedding declarative mini-languages in Python, which demonstrates some other techniques.

A Deeper Look At Metafunctions

In this Artima article, David Abrahams and Aleksey Gurtovoy take a deeper look at metafunctions, and introduce the Boost metaprogramming library.

The article is an extract from the authors' forthcoming C++ Template Metaprogramming.

The authors' example application of C++ metafunctions is compile-time dimensional analysis. Higher order metafunctions, partial metafunction application and lazy evaluation are also discussed.

Wouldn't an Amazon sponsored link to the book be a good idea here?

Schematics Scheme Cookbook

The Schematics Scheme Cookbook is a collaborative effort to produce practical documentation for using the Scheme language, particularly in commercial environments. It is focused on PLT Scheme, although other Scheme dialects are supported as far as possible.

A nice attempt by several of lambda's friends to provide practical help for people trying to solve real problems using Scheme.

I think the community around any non-mainstream language must encourage and support such efforts for the language to have any chance of gaining momentum.

This is somewhat related to our discussion of real life programming using Haskell, and about the success of so-called scripting languages.

I must admit that I use Python for my scripting work. Tried to use Scheme but it was too much of a bother. Guess it's time to try again.

GvR: Rejecting the J2 decorators proposal

Yet another example of language design in action. The specific issues Guido is concerned about are perhaps of less importance than this concluding remark,

A warning: some people have shown examples of extreme uses of decorators. I've seen decorators proposed for argument and return type annotations, and even one that used a decorator to create an object that did a regular expression substitution. Those uses are cute, but I recommend being conservative when deciding between using a decorator or some other approach, especially in code that will see a large audience (like 3rd party library packages). Using decorators for type annotations in particular looks tedious, and this particular application is so important that I expect Python 3000 will have optional type declarations integrated into the argument list.