[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