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

why doesn't this work?

 [1/2] from: jeff621::yahoo::com at: 14-Mar-2001 16:25


this doesn't work: write %params.txt {param1: false} params: make object! to-block read %params.txt returns: ** Script Error: false is not defined in this context. ** Where: param1: false this does work: params: make object! [param1: false] -- as you'd expect and this works too: write %params.txt {param1: "text"} params: make object! to-block read %params.txt And that's what's baffling me. I'd like to store parameters in a file outside of my code. I'd like to use an object inside the code to hold the parameters. If I create the object inside the code - then read the parameter file stored on disk and over-write any values in the default parameter object, it allows the user to overwrite only some parameters. So - why is a boolean value not ok in this context? Any clues anyone? thanks, -Jeff

 [2/2] from: jkinraid:clear at: 15-Mar-2001 15:50


Hi Jeff,
> write %params.txt {param1: false} > params: make object! to-block read %params.txt
<<quoted lines omitted: 17>>
> So - why is a boolean value not ok in this context? > Any clues anyone?
When you do a to-block on a string, the resulting block isn't bound to any context.
>> do to-block "{abcd}"
== "abcd"
>> do to-block "true"
** Script Error: true is not defined in this context ** Near: true A string doesn't need to be bound to a context, so it works fine. However, a word needs a context, and there isn't one. Let's make one. another-context: make object! [true: "not false"] blk: to-block "true" do bind blk in another-context 'true == "not false" ; blk is bound to a context where the value of true is the string ; "not false"
>> do blk
== "not false"
>> :blk
== [true] ; Now change blk to use the global context
>> do bind blk 'true
== true The load function will automatically convert your string into a block, *and* bind it to the global context.
>> do load "true"
== true
>> params: make object! load {param1: false} >> params/param1
== false Julian Kinraid

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