Mailing List Archive: 49091 messages
  • Home
  • Script library
  • AltME Archive
  • Mailing list
  • Articles Index
  • Site search
 

[REBOL] Problem with try [ open/direct/binary tcp://... ] Re:

From: kgd03011:nifty:ne:jp at: 4-Oct-2000 11:34

Hi Joel, I think there's a big problem when the docs use a vague term like "convert to a string," since there are several ways that values may be converted to strings. As Andrew Martin noted, the cause of the strange behavior seen by JOIN is INSERT's behavior (also seen with APPEND). It seems that INSERT uses FORM to convert values contained in blocks before inserting them, and TO STRING! to convert values which aren't contained in blocks. Most of the time the results of TO STRING! and FORM are the same, but there are several differences.
>> to+form: func[v][print to string! :v print form :v] >> to+form pi
3.14159265358979 3.14159265358979
>> to+form %file.ext
file.ext file.ext
>> to+form to binary! "binary"
binary #{62696E617279}
>> to+form first [abc/def/ghi]
abcdefghi abc/def/ghi
>> to+form ["abc" "def" "ghi"]
abcdefghi abc def ghi These differences correspond exactly to the behavior of INSERT, APPEND and JOIN:
>> append "" to binary! "binary"
== "binary"
>> append "" reduce [to binary! "binary"]
== "#{62696E617279}"
>> append "" first [abc/def/ghi]
== "abcdefghi"
>> append "" [abc/def/ghi]
== "abc/def/ghi"
>> append "" ["abc" "def" "ghi"]
== "abcdefghi"
>> append "" [["abc" "def" "ghi"]]
== "abc def ghi" Eric