From: "Stephen J. Turnbull" <stephen@xemacs.org>
Cc: emacs-devel@gnu.org, xemacs-design@xemacs.org
Subject: Re: Rationale for split-string?
Date: Sat, 19 Apr 2003 17:55:17 +0900 [thread overview]
Message-ID: <87adem27ey.fsf@tleepslib.sk.tsukuba.ac.jp> (raw)
In-Reply-To: <E196jkF-0005dy-00@fencepost.gnu.org> (Richard Stallman's message of "Sat, 19 Apr 2003 00:14:31 -0400")
> (split-string ",,data,," ",")
> => ("" "data" "")
rms> Is that wrong? If so, what result do you think is right?
rms> ("" "" "data" "" "") could be argued for, but I am not sure
rms> it is better.
Well, if you are parsing a comma separated value file (the standard
text/plain output format for spreadsheets and some databases, such as
subversion), the five-element list is exactly what you want, and the
three-element list is a type error (incomplete record). In what case
would the three-element list be desirable? I understand the case for
a one-element result, but not three.
I see basically two modes. In one mode you are parsing fields from
each of a sequence of records, in which case you want to retain null
strings as null values. In the other, you are parsing a (free-form)
stream of words, in which case null words (usually) don't exist, so
you want to throw away _all_ of the null strings. In fact, all of the
whitespace-only strings, too, but those normally won't arise in the
common case where SEPARATORS matches contiguous whitespace.
I think we should support both modes, but the token-parser is easy to
derive from the field-parser, while it's impossible to do the reverse
because the token parser throws away information. I conclude that the
field-parser (the XEmacs behavior) is more primitive, and I'd like to
call that `split-string', with either more sophisticated behavior
implemented by overloading the separators argument to take keywords
for special treatment, or (preferably) in a separate function.
--
Institute of Policy and Planning Sciences http://turnbull.sk.tsukuba.ac.jp
University of Tsukuba Tennodai 1-1-1 Tsukuba 305-8573 JAPAN
Ask not how you can "do" free software business;
ask what your business can "do for" free software.
next prev parent reply other threads:[~2003-04-19 8:55 UTC|newest]
Thread overview: 35+ messages / expand[flat|nested] mbox.gz Atom feed top
2003-04-17 9:06 Rationale for split-string? Stephen J. Turnbull
2003-04-17 11:30 ` Stefan Reichör
2003-04-18 1:54 ` Richard Stallman
2003-04-18 2:59 ` Steve Youngs
2003-04-17 17:44 ` Stefan Monnier
2003-04-17 19:32 ` Luc Teirlinck
2003-04-18 11:50 ` Stephen J. Turnbull
2003-04-18 14:17 ` Stefan Monnier
2003-04-19 8:18 ` Stephen J. Turnbull
2003-04-19 13:35 ` Richard Stallman
2003-04-19 4:14 ` Richard Stallman
2003-04-19 8:55 ` Stephen J. Turnbull [this message]
2003-04-21 0:59 ` Richard Stallman
2003-04-21 1:55 ` Luc Teirlinck
2003-04-21 10:58 ` Stephen J. Turnbull
2003-04-21 21:11 ` Luc Teirlinck
2003-04-21 23:43 ` Miles Bader
2003-04-22 3:26 ` Luc Teirlinck
2003-04-22 4:09 ` Jerry James
2003-04-22 8:15 ` Eli Zaretskii
2003-04-22 13:22 ` Stephen J. Turnbull
2003-04-22 14:38 ` Jerry James
2003-04-22 12:56 ` Luc Teirlinck
2003-04-22 14:56 ` Jerry James
2003-04-22 15:27 ` Luc Teirlinck
2003-04-22 13:19 ` Stephen J. Turnbull
2003-04-22 13:39 ` Miles Bader
2003-04-22 13:51 ` Luc Teirlinck
2003-04-22 16:26 ` Luc Teirlinck
2003-04-23 1:00 ` Richard Stallman
2003-04-23 4:09 ` Stephen J. Turnbull
2003-04-24 23:12 ` Richard Stallman
2003-05-20 1:55 ` Stephen J. Turnbull
2003-05-22 15:00 ` Kai Großjohann
-- strict thread matches above, loose matches on Subject: below --
2003-05-20 3:11 Bill Wohler
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
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=87adem27ey.fsf@tleepslib.sk.tsukuba.ac.jp \
--to=stephen@xemacs.org \
--cc=emacs-devel@gnu.org \
--cc=xemacs-design@xemacs.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.
Code repositories for project(s) associated with this external index
https://git.savannah.gnu.org/cgit/emacs.git
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.