Subject: Re: [Fwd: abolish/1 in 3.3.0]

From: Paul Singleton <[email-masked]>
Date: Mon, 24 Jan 2000 16:30:15 +0000

"Richard A. O'Keefe" wrote:

> So it was obvious that the "right" primitive was string streams.

Hey Presto.  I think some reasoning has been omitted here, which
is a pity 'cos I'd want to quibble with it :-)

Streams are not Prolog-like; you cannot backtrack over get/2, and
you cannot directly parse a stream.  In fact, you cannot directly
do anything Prolog-like to a stream.

I suggest that the "right" primitive is lazily-evaluated lists of
characters (whether codes or single-character atoms: we can argue
about that in another thread :-)

Jan: (while we're negotiating hooks :-) is it feasible to denote a
list by a special type of variable which has an associated
generator, and to invoke this generator whenever an attempted
unification needs to know more about it (i.e. whether it's empty,
and if not, what its first element is)?

I'm guessing that a multi-threaded kernel is necessary (in which
case string streams were the best "wrong" primitive for Quintus at
the time :-)

Paul Singleton