World: r3wp
[Core] Discuss core issues
older newer | first last |
Graham 17-Sep-2005 [2023] | What's the logic! in this ? >> true: all [ false ] == none |
Henrik 17-Sep-2005 [2024] | >> false == false >> all [false] == none >> true: all [false] == none |
Graham 17-Sep-2005 [2025x2] | I mean, should all [ false ] return false ? |
instead it returns none. | |
Henrik 17-Sep-2005 [2027x2] | >> ? All USAGE: ALL block DESCRIPTION: Shortcut AND. Evaluates and returns at the first FALSE or NONE. ALL is a native value. |
if there is nothing before false... what's there to evaluate? | |
Graham 17-Sep-2005 [2029x3] | returns at the first FALSE |
>> all [ true false ] == none | |
>> true and false == false | |
Henrik 17-Sep-2005 [2032x3] | yes, if it's equivalent of AND, that makes sense |
>> all [1 2 3 4 5 false] == none >> all [1 2 3 4 5] == 5 | |
but: >> 1 and 2 and 3 and 4 and 5 == 0 >> 1 and 2 and 3 and 4 and 5 and false ** Script Error: Expected one of: integer! - not: logic! ** Near: 1 and 2 and 3 | |
Graham 17-Sep-2005 [2035] | well, the behaviour of 'all confuses me. |
Henrik 17-Sep-2005 [2036x3] | it doesn't make too much sense as a shortcut AND.... it makes more sense to say that it returns a value unless there is a FALSE or NONE in the block |
if you stick to TRUE and FALSE for ALL and AND, they would be equivalent in behaviour. it seems that ALL allows more mixing of the datatypes | |
could it be that all values are converted to logic! ? >> to-logic 1 == true >> to-logic none == false >> to-logic false == false >> to-logic 2 == true | |
Graham 17-Sep-2005 [2039] | perhaps we need to make an amendment to the wikibook. |
Henrik 17-Sep-2005 [2040] | it seems not: >> all [1 2 3 false] == none >> (to-logic 1) and (to-logic 2) and (to-logic 3) and (to-logic false) == false |
Graham 17-Sep-2005 [2041] | either that, or a RAMBO entry. |
Henrik 17-Sep-2005 [2042] | well it seems to behave like AND, it just returns NONE instead of FALSE |
Graham 17-Sep-2005 [2043] | so, it's not a shortcut |
Henrik 17-Sep-2005 [2044x3] | so it's not a true shortcut of AND and would fail if you were testing for FALSE |
this also doesn't work: >> (all [1 2 3 false]) and (all [1 2 3 true]) ** Script Error: Cannot use and~ on none! value ** Near: (all [1 2 3 false]) and (all [1 2 3 true]) | |
because ALL returns NONE instead of FALSE, since: >> logic? none == false | |
Graham 17-Sep-2005 [2047] | 'all is used widely ... in rebol scripts |
Henrik 17-Sep-2005 [2048] | so if there were to be a RAMBO entry, it would be because ALL doesn't return logic! values. the case would be the same for ANY. But there has to be a reason why it's made like this. |
Graham 17-Sep-2005 [2049] | yeah, to frustrate newbies |
Henrik 17-Sep-2005 [2050x2] | :-) testing with EITHER: >> either false [1][2] == 2 >> either true [1][2] == 1 >> either none [1][2] == 2 so it doesn't seem to have a reason to return NONE... |
a whole lot of things would break if the return value was changed from NONE to FALSE. it would be easier to say that ALL is not a really true shortcut AND | |
Graham 17-Sep-2005 [2052] | I suggest we submit a RAMBO and wait to see what Carl says ... |
Henrik 17-Sep-2005 [2053] | yep |
Graham 17-Sep-2005 [2054x2] | done. |
updated the wikibook as well. | |
Ashley 17-Sep-2005 [2056] | Something related that has always bugged me is to-logic: >> to-logic 'false == true >> to-logic "false" == true of what use then is to-logic? |
PeterWood 17-Sep-2005 [2057] | This ? >> to-logic 1 == true >> to-logic 0 == false |
Gabriele 17-Sep-2005 [2058x4] | >> any [false] == none |
>> select [a 1 b 2] 'c == none | |
see the pattern? :-) | |
i agree the help string should probably be clearer. | |
PhilB 18-Sep-2005 [2062] | How do send an email and cc a second email address I tried this lv-header: make system/standard/email [ to: [test1-:-somehost-:-com] cc: [test2-:-gmail-:-com] ] send/header/subject [test1-:-somehost-:-com] "This is a test" lv-header "Test Subject" but the email gets sent to the to address but not the cc address. |
Graham 18-Sep-2005 [2063x4] | USAGE: SEND address message /only /header header-obj /attach files /subject subj /show DESCRIPTION: Send a message to an address (or block of addresses) SEND is a function value. ARGUMENTS: address -- An address or block of addresses (Type: email block) message -- Text of message. First line is subject. (Type: any) REFINEMENTS: /only -- Send only one message to multiple addresses /header -- Supply your own custom header header-obj -- The header to use (Type: object) /attach -- Attach file, files, or [.. [filename data]] files -- The files to attach to the message (Type: file block) /subject -- Set the subject of the message subj -- The subject line (Type: any) /show -- Show all recipients in the TO field |
so, I guess send/only/header [ [test1-:-somehost-:-com][test2-:-gmail-:-com] ] "This is a test" lv-header "Test Subject" | |
I don't believe that 'send examines the header for cc and bcc fields. | |
yeah, it doesn't. check source send | |
PhilB 18-Sep-2005 [2067] | So I have to provide all the addresses as the 2nd parameter ... an amalgamation of the To: CC: & BCC addresses ..... |
Graham 18-Sep-2005 [2068x3] | no. |
you have to rebuild the header for BCC so that the to: address is the BCC: address, and the cc: field is none. | |
since BCC means blind copy - ie the recipient should not get to see the cc fields, and the email should be addressed to them. | |
PhilB 18-Sep-2005 [2071] | OK .. this seems to work .... thanks graham. |
Graham 18-Sep-2005 [2072] | no problems. |
older newer | first last |