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

[REBOL][logic!] another bug ?

 [1/6] from: Christophe:Coussement:mil:be at: 23-Jul-2004 11:26


Hi list, As I was converting XML data to REBOL datatypes, I struggeled on this one: REBOL/View 1.2.10.3.1 6-Aug-2003 Copyright 2000-2003 REBOL Technologies. All rights reserved. REBOL is a trademark of REBOL Technologies. WWW.REBOL.COM
>> to-logic "true"
== true ;==> ok
>> to-logic "false"
== true ;==> yerk
>> make logic! "false"
== true ;==> yerk again
>> to-logic 'false
== true ;==> etc... If it isn't a bug, what's the point of 'to-logic, other than:
>> to-logic 1
== true
>> to-logic 0
== false =xtof

 [2/6] from: rotenca:telvia:it at: 23-Jul-2004 12:35


Hi Christophe, AFAIK, only 0, false and none return false, any other rebol datatype (also the word 'false] return true. The content of string is not considered at all. If you want to interpret the content of a string you must use: do load/all "false" or: first load/all "#[false]" --- Ciao Romano

 [3/6] from: carl:cybercraft at: 23-Jul-2004 22:35


>Hi list, >As I was converting XML data to REBOL datatypes, I struggeled on this one:
<<quoted lines omitted: 14>>
>>> to-logic 0 >== false
I don't think it's a bug, just that most values are true, such as strings, even when empty or containing "false". It's getting the logic of the value, not converting it. With 0 being an exception to this rule, obviously...
>> either 0 ["0 is true!"]["0 is false!"]
== "0 is true!"

 [4/6] from: greggirwin:mindspring at: 23-Jul-2004 8:41


Hi Christophe,
>>> to-logic "false"
== true ;==>> yerk From the Core guide: "Just about any value assigned to a word has the same effect as true:" Romano pointed out the other important thing; LOAD it. -- Gregg

 [5/6] from: antonr:lexicon at: 26-Jul-2004 0:35


I suppose you already have a solution, but maybe it looks better to do this:
>> get to-word "false"
== false
>> get to-word "true"
== true Anton.

 [6/6] from: Christophe::Coussement::mil::be at: 26-Jul-2004 8:43


Hi Anton, Gregg, Carl and the friendly others
> I suppose you already have a solution, > but maybe it looks better to do this: > > >> get to-word "false" > == false > >> get to-word "true" > == true
Cool ! I did get this one. My solution was less elegant: to-logic*: func [val [string!]][ return switch/default val ["false" [false] "true" [true]][none] ] I learn every day thanks to you all ;-)) ==xtof

Notes
  • Quoted lines have been omitted from some messages.
    View the message alone to see the lines that have been omitted