[erlang-questions] Strings as Lists
Kirill Zaborski
qrilka@REDACTED
Thu Feb 14 08:01:18 CET 2008
Richard,
is there any information available about Strand84? Search returns no
meaningful answers.
I presume it is some programming language (from year 1984? or some
connection to Orwell's book? :) ). Am I right?
Best regards,
Kirill
On Thu, Feb 14, 2008 at 4:28 AM, Richard A. O'Keefe <ok@REDACTED> wrote:
>
> On 13 Feb 2008, at 7:21 am, Christian S wrote:
> > That is the reason. Hysterical Raisins.
> >
> > There was a time when Erlang didn't have binaries.
>
> There was a time when Erlang didn't have _anything_,
> but that's almost surely not the reason.
>
> > Someone thought it
> > would be a good idea to make "ABC" a way to write [65,66,67].
>
> Don't forget, Erlang was heavily influenced by Prolog and Strand84.
> If memory serves me correctly, the original prototype implementation
> was done in Prolog, and the Prolog reader has read "ABC" as [65,66,67]
> since the late 1970s at least.
>
> It's not Hysterical Raisins at all: it is simplicity (the preferred
> sequence type in Erlang is lists, and strings are just sequences of
> characters), power (because any time someone defines a function on
> lists you get to use it on strings, and there are *lots* of useful
> list functions), and processing efficiency (because working down
> one character at a time doesn't require allocating *any* new storage,
> not even for slices).
>
> ByteStrings were added to Haskell (actually in two flavours) to support
> high volume I/O. One of the reasons they've seen a lot of acceptance is
> that various people have gone to a lot of trouble to make them LOOK as
> much like lists as possible. Thanks to Haskell's typeclass machinery,
> that can be "very much indeed" (see the ListLike package, the use of
> which
> means that you can continue to write code that works on lists *or*
> strings).
> The one thing that bytestrings aren't much good for these days, of
> course,
> is holding *decoded* characters.
>
>
> It's important to realise that in ANY programming language there is
> more than
> one way to represent strings. For example, even for character=byte
> there are
> three different representations supported in C89, and C89 programs
> often had
> to deal with a fourth. You don't *have* to stick with the one that the
> compiler translates "ABC" to.
>
>
>
>
>
> _______________________________________________
> erlang-questions mailing list
> erlang-questions@REDACTED
> http://www.erlang.org/mailman/listinfo/erlang-questions
>
More information about the erlang-questions
mailing list