
Jérémy Bobbio
Once this is agreed, it would be easy to make scripts which generate C code from UnicodeData.txt tables from Unicode. I think table-driven predicates and toUpper/toLower should better be implemented in C; Haskell is not good at static constant tables with numbers.
Sebastien Carlier already wrote this for hOp, see : http://etudiants.insia.org/~jbobbio/hOp/Gen_wctype.hs
And I've done a similar thing for my language Kogut some time ago: http://cvs.sourceforge.net/viewcvs.py/kokogut/kokogut/runtime/make-char-tabl... http://cvs.sourceforge.net/viewcvs.py/kokogut/kokogut/lib/Core/Kokogut/Chara... Let's see how these separately developed interpretations of predicates differ (mine also have different names and there are a few more): |Sebastien's| mine -------+-----------+---------- alnum | L* N* | L* N* alpha | L* | L* cntrl | Cc | Cc Zl Zp digit | N* | Nd lower | Ll | Ll punct | P* | P* upper | Lu | Lt Lu blank | Z* \t\n\r | Z*(except U+00A0 U+2007 U+202F) \t\n\v\f\r U+0085 Note that the interpretation of "digit" differs from both C and Haskell 98 which specify it to be ASCII-only. Actually I have ASCII-only variants of IsDigit parametrized by the number base. -- __("< Marcin Kowalczyk \__/ qrczak@knm.org.pl ^^ http://qrnik.knm.org.pl/~qrczak/