From: Hans Aberg (haberg@math.su.se)
Date: Mon Oct 15 2007 - 04:19:18 CDT
On 15 Oct 2007, at 03:45, Philippe Verdy wrote:
>>> The intent is not to find all matches, but having the possibility
>>> of finding
>>> them all;
>>
>> This can be done using Haskell style lazy evaluation, similar to a
>> Prolog query style.
>
> I know that because I've implemented it (without Haskell and
> without lazy
> evaluation, the specification should not limit the choice of
> implementation
> languages), but this still does not reply the initial question; how
> are
> matches expected to be ordered in the result set?
I described this in the letter I think was not cc'ed to this list.
You may want be able to chose a host of different language oriented
orderings here. Unicode only needs to define those orderings of on
the set of strings: the full set and the subset of legal Unicode
strings.
> Of course I could rewrite everything with Haskell or some other FP
> language,
> including in Lisp with lambda-calculus. This will not give any
> reply to the
> initial question, even though it will give a strong mathematical
> proof of
> the concept (a proof verified by the language itself).
It would only work in a lazy language, such as Haskell, not Lisp or
Scheme which are strict. In Haskell, one can by an expression created
a potentially infinite list, and then ask for characters one by one.
The language engine will then backtrack into the arguments, and only
compute what is necessary to produce the result.
For strict language, one needs an implementation that emulates this.
The Haskell interpreter Hugs <http:haskell.org/hugs/> comes with a
Mini-Prolog demo that implements Prolog query style using lazy
evaluation. If the program is translated into a strict program, such
as C++, the query style goes away.
I just mentioned this as an input.
Hans Åberg
This archive was generated by hypermail 2.1.5 : Mon Oct 15 2007 - 04:22:30 CDT