[cwn] Attn: Development Editor, Latest Caml Weekly News

Alan Schmitt alan.schmitt at polytechnique.org
Tue Feb 12 00:27:37 PST 2008


Hello,

Here is the latest Caml Weekly News, for the week of February 05 to  
12, 2008.

1) Palindromic Quine
2) Calendar library: version 2.0
3) Ropes-Based Implementation of Buffer

========================================================================
1) Palindromic Quine
Archive: <http://groups.google.com/group/fa.caml/browse_frm/thread/8be83ea9d8614b58#1d2154145083fdb7 
 >
------------------------------------------------------------------------
** Concluding this thread, Keisuke Nakano said:

The shortest code contest 'Palindromic Quine' is over.
The result is found at:
  <http://golf.shinh.org/p.rb?Palindromic+Quine#OCaml>

Finally I could find the shortest code with 199 bytes:

"k\"",let rec(!)n?(q=String.make 1(Char.chr 34))s  
k=print_char(q^s^q^q^k^q).[abs n];!(n-1)s k in!99"99!ni k s)1-n(!;]n  
sba[.)q^k^q^q^s^q(rahc_tnirp=k s))43 rhc.rahC(1 ekam.gnirtS=q(?n)!(cer  
tel,""\k"

It is an acceptable solution for the contest though the code
execution ends with an exception 'index out of bounds'.

There may exist a palindromic Quine code shorter than this code.
Please try to find it if you're interested in.
			
========================================================================
2) Calendar library: version 2.0
Archive: <http://groups.google.com/group/fa.caml/browse_frm/thread/6970ff8a7ead01d6#8e0b0aba3a425ba4 
 >
------------------------------------------------------------------------
** Julien Signoles announced:

I am happy to announce a new release (v2.0) of Calendar, an ocaml  
library
managing dates and times. This release provides a bunch of new modules  
and
functions.

The library is available at:
	<http://www.lri.fr/~signoles/prog.en.html#calendar>

The changes between the last version (v1.10) and this new one are:
* licence changes from LGPLv2 to LGPLv2.1
* use -pack: all modules of the library are packed inside a single  
module
  CalendarLib (calendar now requires ocaml >= 3.09.1)
* new modules Time_sig, Date_sig and Calendar_sig
* new module Ftime (time implementation in which seconds are floats)
  (Hezekiah M. Carty's suggestion)
* new module Calendar_builder (generic calendar implementation)
* new module Fcalendar (calendar implementation using Ftime)
* new module Calendar.Precise (calendar with a best precision)
* hash functions are provided
* new modules Printer.Ftime and Printer.Fcalendar
* modules Printer.Date, Printer.Time and Printer.Calendar respectively
  replace Printer.DatePrinter, Printer.TimePrinter and
  Printer.CalendarPrinter. These last modules still exist but are
  deprecated.
* new function Time_Zone.on
* new function Date.from_day_of_year (Hezekiah M. Carty's suggestion)
* new function Date.is_valid_date (Richard Jones' suggestion)
* new module Utils
* new module Version (information about version of calendar)
* add tags @example, @raise and @see in the API documentation
			
========================================================================
3) Ropes-Based Implementation of Buffer
Archive: <http://groups.google.com/group/fa.caml/browse_frm/thread/1d8613c800ec034a#dc1eecdd26bf3157 
 >
------------------------------------------------------------------------
** Deep in this thread, Jean-Christophe Filliâtre said:

Just for fun, I wrote a ropes-based implementation of Buffer. The
interface is exactly the same. Differences between the two
implementations are the following:

- Contrary to ocaml's standard library, a buffer size is not limited to
      [Sys.max_string_length], but to [max_int] (sizes are represented
      internally using native ocaml integers).

- [contents] and [sub] raise [Invalid_argument] if the resulting string
      would be larger than [Sys.max_string_length] bytes.

- The meaning of [create]'s argument is not exactly the same,
    though its value only affects performances, as for [Buffer];
    see below.

- An additional function [print] is provided.

The code is here:

	<http://www.lri.fr/~filliatr/ftp/ocaml/ds/rbuffer.mli>
	<http://www.lri.fr/~filliatr/ftp/ocaml/ds/rbuffer.ml>

For general-purpose ropes, see

	<http://www.lri.fr/~filliatr/software.en.html>
			
========================================================================
Using folding to read the cwn in vim 6+
------------------------------------------------------------------------
Here is a quick trick to help you read this CWN if you are viewing it  
using
vim (version 6 or greater).

:set foldmethod=expr
:set foldexpr=getline(v:lnum)=~'^=\\{78}$'?'<1':1
zM
If you know of a better way, please let me know.

========================================================================
Old cwn
------------------------------------------------------------------------

If you happen to miss a CWN, you can send me a message
(alan.schmitt at polytechnique.org) and I'll mail it to you, or go take a  
look at
the archive (<http://alan.petitepomme.net/cwn/>) or the RSS feed of the
archives (<http://alan.petitepomme.net/cwn/cwn.rss>). If you also wish
to receive it every week by mail, you may subscribe online at
<http://lists.idyll.org/listinfo/caml-news-weekly/> .

========================================================================

-- 
Alan Schmitt <http://alan.petitepomme.net/>

The hacker: someone who figured things out and made something cool  
happen.
  .O.
  ..O
  OOO


-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.idyll.org/pipermail/caml-news-weekly/attachments/20080212/72a8431d/attachment.htm 
-------------- next part --------------
A non-text attachment was scrubbed...
Name: PGP.sig
Type: application/pgp-signature
Size: 186 bytes
Desc: This is a digitally signed message part
Url : http://lists.idyll.org/pipermail/caml-news-weekly/attachments/20080212/72a8431d/attachment.pgp 


More information about the caml-news-weekly mailing list