Lambda the Ultimate

inactiveTopic The ICFP Programming Contest is underway!
started 7/28/2001; 8:11:44 AM - last post 8/12/2001; 6:37:50 AM
Kaushik - The ICFP Programming Contest is underway!  blueArrow
7/28/2001; 8:11:44 AM (reads: 1108, responses: 13)
The Fourth ICFP Programming Contest started on July 26th.

Contestants have 72 hours to implement the challenge task, and the deadline ends Sunday, July 29th. There's also a special lightening division for submissions within 24 hours. The organizers have already received 39 entries in the lightening division!

Besides the prize money, most contestants are,of course, competing for the unlimited bragging rights that are up for grabs.

The challenge task this year is to design and implement an optimizer for SML/NG which is a simple XML-based markup language.

While the objective is to show off how your favorite functional programming language is better, a whole host of languages (or even a combination of several languages) are allowed.

Keep checking the latest news updates.

Cheers!

Kaushik

Chris Rathman - Re: The ICFP Programming Contest is underway!  blueArrow
7/28/2001; 9:12:11 AM (reads: 1153, responses: 0)
The nice thing is that this years assigned task ought to result in some nice utilities that are able to compress XML & XHTML documents.

I tend to put a lot of white space in my documents because I think one should be able to discern the structure by just glancing at the indentation - XML/XHTML documents are in many ways like reading code. Unfortunately, such whitespace tends to eat up bandwidth.

What would be nice is if the compression/optimization could be build into the internet server engine, so you could author your pages without consideration of bandwidth issues and let the server take care of that chore.

Ehud Lamm - Re: The ICFP Programming Contest is underway!  blueArrow
7/30/2001; 2:06:19 PM (reads: 1143, responses: 0)
Some solutions write-ups are now available.

pixel - Re: The ICFP Programming Contest is underway!  blueArrow
7/30/2001; 3:40:59 PM (reads: 1121, responses: 1)
yep, if only a few more teams had given there solution, i'd know what our solution is worth without waiting the 4 september!

as far as i've tested Bourin is better than Python Team, but a python solution can't be real opponent for this kind of problem ;p

Ehud Lamm - Re: The ICFP Programming Contest is underway!  blueArrow
7/31/2001; 4:24:54 AM (reads: 1171, responses: 0)
Can you describe your experience, as regards language features?

pixel - Re: The ICFP Programming Contest is underway!  blueArrow
7/31/2001; 5:36:30 AM (reads: 1131, responses: 1)
python vs ocaml for this kind of problem:

  • static typing with type inference vs dynamic typing (esp. for higher order programming)
  • python data structures don't handle variants nicely vs ocaml which has pattern matching on variants
  • python data structures are memory costly
  • efficiency difference

Ehud Lamm - Re: The ICFP Programming Contest is underway!  blueArrow
7/31/2001; 1:06:42 PM (reads: 1182, responses: 0)
Could you elaborate on the use of high order programming? (Or should I read the source...?)

pixel - Re: The ICFP Programming Contest is underway!  blueArrow
7/31/2001; 3:04:50 PM (reads: 1126, responses: 0)
I'm programming quite a lot in perl, using map&grep quite a lot without any problem. But each time i tried very compact and expressive higher-order expressions in lisp/perl i got bite by the lack of static type-checker. A good example is fold_left. It is a very powerful construct, but it can be hard to master:

let tags2env tags = fold_left add_tag_to_env default_env (rev tags)

This function transforms a list of tag (eg: B, U, I, U) into the context (eg: { default_env with b = true ; u = 2 ; i = true })

It can just as easily be written in scheme *if* you manage to write it the good way. In OCaml, you don't have to care, if it compiles it will run, and that's quite true :)

Oleg - Re: The ICFP Programming Contest is underway!  blueArrow
8/2/2001; 6:35:22 PM (reads: 1093, responses: 0)
<cite>It [fold] can just as easily be written in scheme *if* you manage to write it the good way.</cite>

Indeed. Here's an snippet from the SSAX XML parser written entirely in Scheme. The snippet resolves the names of attributes with respect to the current Namespace context, and verifies that after the resolution, the attribute names remain unique.

 (fold-right	; fold-right, fold-left, etc. are in SRFI-1
     (lambda (name-value attlist)
       (or
	(attlist-add attlist
	   (cons (SSAX:resolve-name port (car name-value) namespaces #f)
		 (cdr name-value)))
	(parser-error port "[uniqattspec] after NS expansion broken for " 
	       name-value)))
     (make-empty-attlist)
     proper-attrs)
Another snippet:
	(attlist-fold add-default-decl result decl-attrs)
It runs when a start tag contains no attributes. The snippet folds over the list of declared attributes checking to see that none of them are specified as REQUIRED. It adds attributes with the default values to the list of effective attributes. As you see, the code is fairly straightforward.

The SSAX parser itself is a fold -- an enhanced tree fold over an XML document.

Folds and similar generic control structures are very powerful and useful indeed. Church numerals are folds!

Ehud Lamm - Re: The ICFP Programming Contest is underway!  blueArrow
8/3/2001; 4:14:14 AM (reads: 1089, responses: 0)
BTW, It seems some other LtU contributors particpated in the ICFP challenge. It'd be great to hear more (For example, about this entry [Haskell], and this entry [Erlang]). Remember that our focus (and in a sense the focus of the ICFP too) is language features. We now know why Pixel likes Ocaml. So how good were Haskell and Erlang (as George said in the Seinfeld rerun I saw last night, "So I love details, shoot me!").

pixel - Re: The ICFP Programming Contest is underway!  blueArrow
8/3/2001; 6:13:50 AM (reads: 1085, responses: 0)
i've created The unofficial ICFP01 programming contest

Ehud Lamm - Re: The ICFP Programming Contest is underway!  blueArrow
8/9/2001; 2:23:44 AM (reads: 1067, responses: 0)
Pixel, your page includes the ranking of a Mercury solution - yet I couldn't find the code anywhere. Can you help?

pixel - Re: The ICFP Programming Contest is underway!  blueArrow
8/9/2001; 4:08:48 AM (reads: 1057, responses: 0)
I asked Ralph Becket if he would so kind to mail his solution and he did :)

A new icfp2001.tar.bz2 has just been uploaded (beware it's *big*: 19MB compressed, 121MB expanded)

See icfp news for some official news: <quote> We have 172 entries, more than the total of all previous years !

The first 7 files (000 to 007) have eliminated more than 100 entries </quote>

Ehud Lamm - Re: The ICFP Programming Contest is underway!  blueArrow
8/12/2001; 6:37:50 AM (reads: 1057, responses: 0)
There's another unofficial results page.