Selecting a powerful programming language for a project
I have an ill-defined project, whose precise definition will need help from powerful concepts provided by strange and/or powerful programming languages such as Haskell, LISP/Scheme, O’Caml, or Prolog.
To be fluent with such a language, I need to invest some time learning and mastering it. Only then will I be able to determine whether it is really useful for my project.
So my Wish of the Day for today is for a selection guide, which lists a series of questions about the project and then makes a reasoned recommendation for one of the powerful languages for that project. For example, if one of those languages is indeed beautifully abstract but is poor in having runtime libraries and does not provide for linking to alien libraries (imported from mundane languages such as C, Perl or Python), then the language is ruled out for a project, which needs extensive support for manipulating XML files, playing with sockets and doing direct file I/O.

Haskell: Pattern matching, C++-like templates which actually work correctly.
Lisp family: macros, programs-as-data
Scheme: continuations
Common Lisp: Incredibly powerful object system (multi-dispatch and more)
Prolog: Automatic deduction (which includes inverting and composing relations)
I don't know much about O'Caml, though.
Other languages which have constructs you did not mention: Sather and Icon have semi-co-routines (kind of like non-pre-emptive threads except less powerful and more intuitive).
(You can think of the above as almost a selection-guide, for the specific subset you mentioned: “if you need continuations, select Scheme”, etc.)
Can you say what kind of constructs you had in mind, if it's not a secret?
(http://livejournal.com/users/moshez)
Pattern matching, with the following complications:
Think, for example, of retrieving a body of text and splitting it into sentences (taking into account complications due to quotes and text in parentheses (including nested quotes and nested parenthetical text (as in this example))).
(http://livejournal.com/users/tddpirate)