Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Character Properties

12 views
Skip to first unread message

Luke Palmer

unread,
Oct 21, 2002, 1:09:43 AM10/21/02
to perl6-l...@perl.org
What's the plan on having properties, or attributes (depending on how
far we're taking it), on individual characters in a string? I think
it's an essential feature, as Lisp has shown us. If there's an
argument otherwise, I'm all ears.

Luke

Dan Sugalski

unread,
Oct 21, 2002, 11:37:51 AM10/21/02
to perl6-l...@perl.org

While they're certainly useful, I think essential's an awfully strong
word there. You'll note that, just off the top of my head, C, BASIC,
Fortran, Perl, Python, Java, Ruby, Pascal, Oberon, Modula (2 and 3),
Forth, Eiffel, Haskell, BLISS, C++, C#, COBOL, PL/I, APL, B, and BCPL
all don't do character properties/attributes.
--
Dan

--------------------------------------"it's like this"-------------------
Dan Sugalski even samurai
d...@sidhe.org have teddy bears and even
teddy bears get drunk

Dan Sugalski

unread,
Oct 21, 2002, 2:00:36 PM10/21/02
to Austin_...@yahoo.com, perl6-l...@perl.org
At 10:53 AM -0700 10/21/02, Austin Hastings wrote:
>Yeah, but emacs isn't written in any of those languages.

What, you're using emacs as an argument *for* something? :-P

And, FWIW, emacs is written in C. Granted a much macro-mutated
version of C, but C nonetheless.

Austin Hastings

unread,
Oct 21, 2002, 1:53:11 PM10/21/02
to Dan Sugalski, perl6-l...@perl.org
Yeah, but emacs isn't written in any of those languages.

Q.E.D. :-)

=Austin

--- Dan Sugalski <d...@sidhe.org> wrote:


__________________________________________________
Do you Yahoo!?
Y! Web Hosting - Let the expert host your web site
http://webhosting.yahoo.com/

Rafael Garcia-Suarez

unread,
Oct 21, 2002, 3:22:34 PM10/21/02
to perl6-l...@perl.org
Dan Sugalski wrote :

>
> And, FWIW, emacs is written in C. Granted a much macro-mutated
> version of C, but C nonetheless.

Just like Perl 5 ;-)

Luke Palmer

unread,
Oct 21, 2002, 4:20:56 PM10/21/02
to d...@sidhe.org, perl6-l...@perl.org
> Mailing-List: contact perl6-lan...@perl.org; run by ezmlm
> X-Sender: d...@redcap.sidhe.org (Unverified)
> Date: Mon, 21 Oct 2002 11:37:51 -0400
> From: Dan Sugalski <d...@sidhe.org>
> X-SMTPD: qpsmtpd/0.12-dev, http://develooper.com/code/qpsmtpd/

>
> At 11:09 PM -0600 10/20/02, Luke Palmer wrote:
> >What's the plan on having properties, or attributes (depending on how
> >far we're taking it), on individual characters in a string? I think
> >it's an essential feature, as Lisp has shown us. If there's an
> >argument otherwise, I'm all ears.
>
> While they're certainly useful, I think essential's an awfully strong
> word there. You'll note that, just off the top of my head, C, BASIC,
> Fortran, Perl, Python, Java, Ruby, Pascal, Oberon, Modula (2 and 3),
> Forth, Eiffel, Haskell, BLISS, C++, C#, COBOL, PL/I, APL, B, and BCPL
> all don't do character properties/attributes.
> --
> Dan

Fair enough. Then tell me how you solve this problem: You have a text
file in a string, that the user has marked several places in. He's
referring to words for which he wants to keep bookmarks in. Now, he
deletes text (using substr), and we want to keep the marks relative to
the words, not their positions. This seems easy, yet there's not
necessarily an easy way to do it. Uh oh, violating perl philosophy :)

Ok, how about this: Is there a reason I<not> to? Or should I not go
there?

Luke

Jonathan Scott Duff

unread,
Oct 21, 2002, 4:41:07 PM10/21/02
to Luke Palmer, d...@sidhe.org, perl6-l...@perl.org
On Mon, Oct 21, 2002 at 02:20:56PM -0600, Luke Palmer wrote:
> Fair enough. Then tell me how you solve this problem: You have a text
> file in a string, that the user has marked several places in. He's
> referring to words for which he wants to keep bookmarks in. Now, he
> deletes text (using substr), and we want to keep the marks relative to
> the words, not their positions. This seems easy, yet there's not
> necessarily an easy way to do it. Uh oh, violating perl philosophy :)

Sounds like a good candidate for modulehood.

> Ok, how about this: Is there a reason I<not> to? Or should I not go
> there?

Off hand, it sounds expensive. I don't see a way to only let the people
who use it incur the penalty, but my vision isn't the best in the world.

-Scott
--
Jonathan Scott Duff
du...@cbi.tamucc.edu

David Whipp

unread,
Oct 21, 2002, 4:50:00 PM10/21/02
to perl6-l...@perl.org
Jonathan Scott Duff wrote:
> > Ok, how about this: Is there a reason I<not> to? Or
> > should I not go there?
>
> Off hand, it sounds expensive. I don't see a way to only let
> the people who use it incur the penalty, but my vision isn't
> the best in the world.

It should be possible to define the bookmark methods on the basic string
class to rebless the object onto a more powerful subclass. This way, there
is no overhead until the extra information is actually attached. (bless, not
copy, because there may be other references to the string).

Dave.

Dan Sugalski

unread,
Oct 21, 2002, 5:01:07 PM10/21/02
to Luke Palmer, perl6-l...@perl.org
At 2:20 PM -0600 10/21/02, Luke Palmer wrote:
> > Mailing-List: contact perl6-lan...@perl.org; run by ezmlm
>> X-Sender: d...@redcap.sidhe.org (Unverified)
>> Date: Mon, 21 Oct 2002 11:37:51 -0400
>> From: Dan Sugalski <d...@sidhe.org>
>> X-SMTPD: qpsmtpd/0.12-dev, http://develooper.com/code/qpsmtpd/
>>
>> At 11:09 PM -0600 10/20/02, Luke Palmer wrote:
>> >What's the plan on having properties, or attributes (depending on how
>> >far we're taking it), on individual characters in a string? I think
>> >it's an essential feature, as Lisp has shown us. If there's an
>> >argument otherwise, I'm all ears.
>>
>> While they're certainly useful, I think essential's an awfully strong
>> word there. You'll note that, just off the top of my head, C, BASIC,
>> Fortran, Perl, Python, Java, Ruby, Pascal, Oberon, Modula (2 and 3),
>> Forth, Eiffel, Haskell, BLISS, C++, C#, COBOL, PL/I, APL, B, and BCPL
> > all don't do character properties/attributes.
>
>Fair enough. Then tell me how you solve this problem: You have a text
>file in a string, that the user has marked several places in. He's
>referring to words for which he wants to keep bookmarks in. Now, he
>deletes text (using substr), and we want to keep the marks relative to
>the words, not their positions. This seems easy, yet there's not
>necessarily an easy way to do it. Uh oh, violating perl philosophy :)

I didn't call the problem unreasonable, I was objecting to its
characterization as an "essential feature". It isn't. A useful thing,
definitely, but there are a lot of those. It's hardly essential any
more than, say, a hash that automagically maps to the current
directory's files (iteratively, of course, catching all the
subdirectories) is essential

While perl is a language that makes it easy to do useful things, it
doesn't mean that all useful things should be easy to do in perl.
Given how large the set of Useful Things is, that's not unreasonable.

Simon Cozens

unread,
Oct 21, 2002, 4:51:12 PM10/21/02
to perl6-l...@perl.org
david...@fast-chip.com (David Whipp) writes:
> It should be possible to define the bookmark methods on the basic string
> class to rebless the object onto a more powerful subclass.

That makes it a doubly good candidate for modulehood.

--
It's 106 miles from Birmingham, we've got an eighth of a tank of gas,
half a pack of Dorritos, it's dusk, and we're wearing contacts.
- Malcolm Ray

Dan Sugalski

unread,
Oct 21, 2002, 4:49:57 PM10/21/02
to perl6-l...@perl.org

Almost. At least perl 5's macros look like C. Emacs' macro horrors
make C look like Lisp...

Luke Palmer

unread,
Oct 21, 2002, 5:07:23 PM10/21/02
to d...@sidhe.org, perl6-l...@perl.org
> I didn't call the problem unreasonable, I was objecting to its
> characterization as an "essential feature". It isn't. A useful thing,
> definitely, but there are a lot of those. It's hardly essential any
> more than, say, a hash that automagically maps to the current
> directory's files (iteratively, of course, catching all the
> subdirectories) is essential

I see what you mean now. I had A Momentary Lapse of Reason, in which
I forgot modules could do such things. It's very suited to a
module---not very common, but very important to certain problems.

Luke

0 new messages