From: Marius Vollmer <mvo@zagadka.de>
Cc: guile-devel@gnu.org
Subject: Re: Unicode and Guile
Date: Wed, 12 Nov 2003 03:30:23 +0100 [thread overview]
Message-ID: <87wua6fhds.fsf@zagadka.ping.de> (raw)
In-Reply-To: <200311120140.RAA26670@morrowfield.regexps.com> (Tom Lord's message of "Tue, 11 Nov 2003 17:40:28 -0800 (PST)")
Tom Lord <lord@emf.net> writes:
> > > ~ (make-text-marker text index) => <marker>
>
> > What about having _only_ markers and not allow integers as
> > indices?
>
> Seems excessive and aribtrary. How do I implement (Emacs') GOTO-CHAR
> without standing on my head?
Yes, right, there need to be conversions between markers and integers,
but I'm worried that people will write code like
(do ((i 0 (1+ i))
(>= i (text-length text)))
(... (text-ref text i) ...))
and we'll have trouble implementing this efficiently for graphemes of
variable sizes. When people are encouraged to use markers like this
(do ((i (text-start text) (marker-forward i 1))
((marker-at-end? i)))
(... (marker-ref i) ...))
things should be easier. (Of course, there should also be things like
'text-map', etc.)
> (I strongly suggest splay trees as an ideal implementation strategy
> for for TEXT?. They would make _both_ mutating and functional
> REPLACE efficient.)
Ok, if there is no cost for making texts mutable, we should of course
do it.
>
> > > There is no essential difference between a grapheme and a text
> > > object of length 1, and thus the proposal makes GRAPHEME? a
> > > subtype of TYPE.
>
> > Do we need the concept of grapheme at all, then?
>
> Interesting question! And it ties in with your question about "why
> not just markers and not integer indexes".
>
> I don't see a good way to ground markers _without_ integer indexes.
Yes. What I'm worried about is that it is expensive to go from an
integer index to the memory location where the indicated grapheme is
stored. On the other hand, it us easy to increment the marker to the
next grapheme in a text.
> Graphemes are a reasonable "what the user thinks of as a character".
Yep, the concept of graphemes is useable, if only in the
documentation. What I really had in mind was not the concept, but the
data type. Is it important to have a new data type, or could we just
have
(define (grapheme? obj) (and (text? obj) (= (text-length obj) 1)))
(define grapheme=? text=?)
(define grapheme<? text<?)
...
'read-grapheme' etc would probably need to remain.
--
GPG: D5D4E405 - 2F9B BCCC 8527 692A 04E3 331E FAF8 226A D5D4 E405
_______________________________________________
Guile-devel mailing list
Guile-devel@gnu.org
http://mail.gnu.org/mailman/listinfo/guile-devel
next prev parent reply other threads:[~2003-11-12 2:30 UTC|newest]
Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top
2003-10-21 17:15 Unicode and Guile Andy Wingo
2003-10-25 17:08 ` Stephen Compall
2003-10-26 0:03 ` Tom Lord
2003-10-26 12:34 ` Which Encoding? (was Re: Unicode and Guile) Stephen Compall
2003-10-31 13:25 ` Unicode and Guile Andy Wingo
2003-11-03 13:35 ` text buffers (was Re: Unicode and Guile) Stephen Compall
2003-11-03 20:34 ` Tom Lord
2003-11-04 10:04 ` Stephen Compall
2003-11-03 20:31 ` Unicode and Guile Tom Lord
2003-11-06 18:16 ` Andy Wingo
2003-11-11 19:02 ` Tom Lord
2003-11-12 0:29 ` Marius Vollmer
2003-11-12 1:40 ` Tom Lord
2003-11-12 2:30 ` Marius Vollmer [this message]
2003-11-12 4:03 ` Tom Lord
2003-11-12 16:59 ` Marius Vollmer
2003-11-17 16:17 ` Andy Wingo
2003-11-12 0:06 ` Marius Vollmer
2003-11-12 1:27 ` Tom Lord
2003-10-31 13:16 ` Andy Wingo
2003-11-02 21:23 ` Kevin Ryde
2003-11-26 20:35 ` Mikael Djurfeldt
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: https://www.gnu.org/software/guile/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=87wua6fhds.fsf@zagadka.ping.de \
--to=mvo@zagadka.de \
--cc=guile-devel@gnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).