[Haskell-beginners] Training tasks

umptious umptious at gmail.com
Wed Apr 18 23:21:01 CEST 2012

On 18 April 2012 21:08, Nikita Beloglazov <nikita at taste-o-code.com> wrote:

> On Wed, Apr 18, 2012 at 8:44 PM, Tom Murphy <amindfv at gmail.com> wrote:
>>     I think that the idea is less to have a teaching tool, and more
>> to have a way to "shop around" for languages, by seeing what each
>> language is very good at.
> Yes, Tom is right. Idea is to show what each language good for, to excite
> about it.

Yes, I get that. It's a bad idea. Showing atypical "promotional" cases for
each language encourages faddishness and silver bullet cults; it's
irresponsible and unprofessional. If you're shopping around for a language
then nothing is worse than selected sweet spot cases. Unless they are a
fair-ish benchmark for a language that excels in a clear area, like R, APL
and Awk and you're looking for a glorified DSL.

I'd say that its better to have the same tasks for each language if you're
evaluating a general purpose tool. Obvious ones would be, from simple to

- Some of the unix command line utilities like wc (some of these might be
single liners)

- OXO, Caesar cipher (10 lines or so)

- The Markov chain program from the Practice Of Programming

- Life

- A simple spheres only ray tracer like the one in Graham's Lisp book

- A simple calculator program like the one in Hutton

- The recursive 2D shape program I've mentioned in other posts today

- A version of the classic Traveller/Elite trading system - a really nice
little toy business rules system that can be code either minimally or to
show off the funkier features of a language to get more flexibility and
more interesting pricing rules. Minimal version would be a few tens of
lines and the config file declaring items.

If you want to see a language comparison done responsibly, look at
Kernighan and Pike's "Practice Of Programming."
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.haskell.org/pipermail/beginners/attachments/20120418/de103cda/attachment.htm>

More information about the Beginners mailing list