World: r3wp
[Core] Discuss core issues
older newer | first last |
Volker 18-Jun-2005 [1332] | remove accepts none. the others are examples for "give a good value for 'if instead of throwing an error". |
BrianH 18-Jun-2005 [1333] | Well, if you consider index? find to be another way of saying find/index (if such a thing existed) then I can see why you would let it accept none. If you consider index? to be a seperate function, then accepting none would just be propagating an erroneous condition. Remove should definitely accept none because it's not much of a stretch to change its meaning from "remove here" to "remove here if there is something to remove, no-op if inapplicable", the same behavior it has as in remove tail series. |
Ammon 18-Jun-2005 [1334] | But Remove Tail Series is programatically different than Remove None as Tail returns an apparently empty series, not none. |
BrianH 18-Jun-2005 [1335] | Except in a more abstract sense that remove tail x and remove none both return what they were passed, unmodified :) |
PhilB 19-Jun-2005 [1336x3] | is this a bug or am I doing something wrong? t: func [ip-val [word!]] [ switch/default ip-val [ 'From [print "A"] 'To [print "B"] ] [print "C1"] ] t 'From ; should print "A" |
Compared to t1: func [ip-val [string!]] [ switch/default ip-val [ "From" [print "A1"] "To" [print "B1"] ] [print "C1"] ] t1 "From" ; should print "A1" which correctly prints "A1" | |
The first example prints "C1" rather than "A" | |
Graham 19-Jun-2005 [1339] | t 'From => ? |
PhilB 19-Jun-2005 [1340x2] | >> t: func [ip-val [word!]] [ [ switch/default ip-val [ [ [ 'From [print "A"] [ 'To [print "B"] [ ] [ [print "C1"] [ ] >> >> t 'From ; should print "A" C1 >> |
shouldnt that have printed A rather than C1 | |
Graham 19-Jun-2005 [1342] | >> t: func [ip-val [word!]] [ [ switch/default ip-val [ [ [ From [print "A"] [ To [print "B"] [ ] [ [print "C1"] [ ] >> t 'from A |
PhilB 19-Jun-2005 [1343] | OK ... so I dont need the "'" before the word ..... thanks |
Graham 19-Jun-2005 [1344x3] | I remember being caught on that one once before. |
I note that the parts of dates, times, tuples etc are accessible using path notation. Why not email! as well? | |
I would suggest that email/1 should be the part before the "@", and email/2 the bit after. Then email/2/1 would access the first bit before the "." etc. | |
Allen 19-Jun-2005 [1347] | Graham: Are you asking for email/1 & email/2 to map to the current email/user and email/host refinements ? |
Graham 19-Jun-2005 [1348x2] | oh no! |
where was this documented?? | |
Tomc 19-Jun-2005 [1350] | under datatypes http://www.rebol.com/docs/core23/rebolcore-16.html#section-2.3 |
Anton 20-Jun-2005 [1351] | :) |
DideC 20-Jun-2005 [1352] | No doc ? We even don't read the one we have ;-) |
DideC 21-Jun-2005 [1353] | Q: is there something to flatten a block of block ? ie: >>> probe a === [[1 toto] [2 "this is text" 5.63] [#as12 none]] >>> magic-code! a === [1 toto 2 "this is text" 5.63 #as12 none] |
Tomc 21-Jun-2005 [1354x2] | Yes this just came up again recently, |
27 april chat & parse | |
DideC 21-Jun-2005 [1356] | Thanks, didn't remember that |
Pekr 23-Jun-2005 [1357x2] | how is find/match supposed to work on blocks? I thought following will work? find/match ["Petr Krenzelok"] "Petr" |
what I have in mind is very simple kind of select, not needing to enter whole search key ... | |
Henrik 23-Jun-2005 [1359x3] | with blocks, I don't think that'll work with match, because it searches for the full element in a series, thus you need to search in two levels... |
the block level and the string level | |
a find/deep would be very useful... recursive searching of blocks and objects. it could allow you to find a value in large objects and blocks quickly | |
Pekr 23-Jun-2005 [1362x2] | find/deep is long requested feature, but it was said as not being as trivial, as blocks can contain self-references etc ... |
and what is find/only about? | |
Volker 23-Jun-2005 [1364x6] | with find/match you can check for abbreviations |
>> find/match "Hello World" "W" == none >> find/match "Hello World" "H" == "ello World" | |
>> find/match ["Pekr" "Krenzelok"] "Pekr" == ["Krenzelok"] >> find/match ["Pekr" "Krenzelok"] "Krenzelok" == none | |
/only is for this: | |
>> find ["Pekr" "Krenzelok" "asking"] ["Pekr" "Krenzelok"] == ["Pekr" "Krenzelok" "asking"] >> find/only ["Pekr" "Krenzelok" "asking"] ["Pekr" "Krenzelok"] | |
>> find/only [["Pekr" "Krenzelok"] "asking"] ["Pekr" "Krenzelok"] == [["Pekr" "Krenzelok"] "asking"] | |
Ladislav 23-Jun-2005 [1370] | I wrote some functions of this kind, but anyway, what is "the shortest" reverse of: y: to integer! x: #{80000000} |
Anton 23-Jun-2005 [1371x2] | Maybe this ? >> reverse third make struct! [i [int]] reduce [y] == #{80000000} |
; quick testing looks good >> foreach v [-1 0 1 1000 7777 2000000][print same? v to-integer reverse third make struct! [i [int]] reduce [v]] true true true true true true | |
Gabriele 23-Jun-2005 [1373x3] | hmm, a "short" way could be: |
>> to binary! reduce [y / 16777216 y / 65536 y / 256 y] == #{80000000} | |
btw, is this on rambo? i really think that to binary! should work with integers. | |
JaimeVargas 23-Jun-2005 [1376] | I second that. |
Anton 23-Jun-2005 [1377x2] | I don't remember seeing that in rambo. |
Doesn't appear to be there. I searched "binary!" and "binary" | |
Ladislav 23-Jun-2005 [1379] | submitted |
Piotr 23-Jun-2005 [1380] | does anybody know why code below give me diffrent results? looks like get/set funcs operate on diffrent contexts: ctx: context [ no-a: no-b: no-c: none set 'test does [ foreach x [no-a no-b no-c] [set x "test-1"] foreach x [a b c] [set (to-word join "no-" x) "test-2"] foreach x [a b c] [print [join "no-" x get (to-word join "no-" x)]] foreach x [no-a no-b no-c] [print [x get x]] ] ] test probe no-a probe ctx/no-a |
Ladislav 23-Jun-2005 [1381] | to-word creates global words |
older newer | first last |