World: r3wp
[!REBOL3]
older newer | first last |
Ladislav 5-May-2011 [8547] | by "unevaluated" is meant "never evaluated", by "partially evaluated" is meant "sometimes evaluated, sometimes not evaluated" |
onetom 5-May-2011 [8548] | (i didn't know about the :p where is it documented? otherwise i used the 'p notation many times. it even allows to add explanatory words to the parameters, so u can make a nice dialect by using the default 'do evaluator...) |
Geomol 5-May-2011 [8549] | The R2 doc for "get arguments" is here: http://www.rebol.com/docs/core23/rebolcore-9.html#section-3.3 |
onetom 5-May-2011 [8550] | thanks a lot. i thought i know the core docs in and out :) |
Geomol 5-May-2011 [8551x3] | :) I look in them now and then, as it's easy to forget many of the features in the language. |
About unevaluated lit arguments (or literal arguments, as Carl call them), the functions FOR, FOREACH, REPEAT and maybe more use them (I couldn't remember earlier when I posted). And yes, it's more convenient to write repeat i 10 [...] than repeat 'i 10 [...] But used in some cases, it's probably easier to create less readable code. I can imagine a language, where this is different. About the other type of unevaluated arguments (get arguments as Carl call them), I haven't found other functions than QUOTE, that use it. There must be others!? | |
there is no LIT-LIT-WORD argument, so, to obtain a lit-word, the most natural way is to use: quote 'a Some thoughts: So one use of this is to make it easier to e.g. insert a lit-word in a block. I come to think of how to insert a block in a block. We can't do: insert blk [a b c] as that will insert the 3 words, a, b and c, in blk. So I can write: insert blk [[a b c]] or insert/only blk [a b c] Why not use the same kind of thinking, when dealing with lit-words? So I can write: insert blk ['a] or maybe insert/only blk 'a (maybe the refinement should be called something else than /only). Now, the rule for INSERT should then be, that if it get a word (the lit-word, 'a, will be translated to the the word, a), it should change that to a lit-word, if it got the refinement too. Result is, that unevaluated get arguments can be avoided making the REBOL scanner/parser simpler. | |
BrianH 5-May-2011 [8554x2] | Geomol, if you agree with this model: >> do quote 'a/i == a/1 , put your agreement in http://issue.cc/r3/1434where it counts. |
As for functions with get-word arguments, the DO dialect used to need more of them, but in R3 most of those needs are handled by QUOTE. For other dialects though it is much more useful, as it prevents evaluation by the DO dialect when it is unwanted. It can be used on occasion in security situations if you want to block calculated values. Also, it could be used in a statically compilable subset of REBOL for the block arguments of all control and loop functions like IF and WHILE. | |
Geomol 5-May-2011 [8556] | No need, Ladislav already put it there. If that's for Carl to read through, it's an awful lot of information. |
BrianH 5-May-2011 [8557x4] | Consensus adds to the strength of an argument. Chiming in with an "I agree with Ladislav" on a potentially controversial issue reduces the controversy that might otherwise block it, especially if you are sometimes someone who disagrees with Ladislav effectively (which is pretty difficult to do). |
This has worked very well before with CureCode tickets and such. If Carl doesn't have a strong opinion either way, he will wait for consensus. | |
Back to QUOTE and get-word arguments... We need something like QUOTE, especially for set-*, *-paths, and functions, because these block an evaluation that may have side effects, or at least cause a value copy. Even if QUOTE is the only function with this evaluation model, it depends on DO supporting something like get-word argument evaluation in order to work at all. The alternative is to make 'quote a keyword in the DO dialect, which decidedly doesn't have keywords. So we can't get rid of get-word arguments altogether without ridding ourselves of QUOTE, and you'd get a bit of resistence from anyone who's used it if you want to do that. | |
If you want a SECURE 'get-word constraint that you can apply after QUOTE is defined, that will block some but not all function hacking attempts using function values. The "but not all" part is critical though, so we are better off from a security standpoint if developers aren't allowed to think of function values as being safe to call without precautions, since the consistency of the need for that precaution makes it more commonly applied. | |
Geomol 12-May-2011 [8561] | Is this because string implementation isn't finished? >> next "abc" == "^@^ Maybe related to UTF? |
Rebolek 12-May-2011 [8562] | This is on OSX? If yes, it's probably this bug http://curecode.org/rebol3/ticket.rsp?id=1870&cursor=1 |
Geomol 12-May-2011 [8563] | Yes, on OSX. Thanks! |
GiuseppeC 12-May-2011 [8564] | Are we still alone ? No news from/about Carl ? |
Geomol 12-May-2011 [8565x3] | Carl posted in that bug at 22-Mar-2011. |
Carl's latest REBOL blog is dated 28-Mar-2011: http://www.rebol.com/cgi-bin/blog.r | |
So seem to be 1 month 2 weeks since last REBOL blip. | |
GiuseppeC 12-May-2011 [8568x2] | They are all information I have. I monitor those channels. |
We are still at buil A111 | |
Geomol 12-May-2011 [8570] | Yes, and I don't put my expectations up. But I feel, people are hard at work with alternatives to REBOL. |
GiuseppeC 12-May-2011 [8571] | RED... |
Geomol 12-May-2011 [8572] | That's one, yes. |
GiuseppeC 12-May-2011 [8573x2] | It is great but a Waste of time. If only REBOL was open sorced DOC could put his offorts on it. |
Insteda we are reinventing the wheel | |
Geomol 12-May-2011 [8575x3] | If the first wheel can't run, reinvension can be a good thing. |
Think "reinvention" is with a t. | |
Also with all other languages, you have more than one implementation. I don't think, all those are waste of time. How many different C compilers have been made over the years? | |
Kaj 12-May-2011 [8578x2] | One of the nice things about Red is that it's not really the new wheel, but quite different |
Still, I wonder why people object so strongly against new wheels. Do you employ wooden donkey cart wheels on your electric automobile? | |
Geomol 12-May-2011 [8580] | Yeah, there might come many new great developments from some of the REBOL ideas. Some of them will be very much like REBOL, but others will be something new. |
Kaj 12-May-2011 [8581] | Like all good operating systems are strongly inspired by Amiga |
Henrik 12-May-2011 [8582] | Red, I think, could complement R3 quite well. |
TomBon 12-May-2011 [8583] | would it be possible (in general) to encapsulate the whole R2/3 GUI functionality incl. antigrain etc. into a lib, usable for other languages as a out of the box GUI generator? communication & event handling e.g. via TCP? |
Kaj 12-May-2011 [8584x2] | R3 is that lib |
However, it still fails to be as easy to integrate as for example a 0MQ library | |
amacleod 12-May-2011 [8586] | I've been out of the loop here the last few months but it seems like R3 is stalled again. And I do not see any signs of Carl. What's the overall status here? |
Maxim 12-May-2011 [8587] | there has been a lot of work going on with a few R3 projects. a few extensions, the gui, etc. there has also been quite a bit of work done on Red. |
Robert 13-May-2011 [8588] | Any HAM-Radio guys here? Maybe this is the best channel to get in contact with Carl. |
onetom 13-May-2011 [8589] | :D |
Pekr 13-May-2011 [8590] | My brother did it in the past, but sold the equipment. I really wonder, what are Carl's thoughts, as even my dog understands, that REBOL situation is in deep .... :-) |
Geomol 13-May-2011 [8591] | I notice ++ and --, which was discussed here: http://www.rebol.net/cgi-bin/r3blog.r?view=0057#comments Would it be ok to let NEXT and BACK do the job, like this: next: func [series] [ either word? series [ set series system/contexts/lib/next get series ][ system/contexts/lib/next series ] ] Examples of use: >> blk: [a b c] == [a b c] >> next blk == [b c] >> blk == [a b c] >> next 'blk == [b c] >> blk == [b c] |
Maxim 13-May-2011 [8592] | it would break a lot of code, and in fact, I prefer it like it is. this being said, if we have ++/--, then I expect *these* to work as you just depicted |
Geomol 13-May-2011 [8593] | WIll it break code? Hmm, what kind of code? |
Maxim 13-May-2011 [8594] | all of my code ;-) |
Geomol 13-May-2011 [8595x2] | I don't see how. Notice, NEXT in my example works just like today with all arguments beside words, which gives an error today. |
The first part of my examples above use the new NEXT just like the old NEXT, we have today. | |
older newer | first last |