r3wp [groups: 83 posts: 189283]
  • Home
  • Script library
  • AltME Archive
  • Mailing list
  • Articles Index
  • Site search
 

World: r3wp

[!REBOL3-OLD1]

Henrik
15-Oct-2007
[5122]
skip stack -37 ; hard to debug
Maarten
15-Oct-2007
[5123x2]
Hmmm,  I'd love a 'get-stack and 'restore-stack. Who needs continuations....
(and serializable)
btiffin
15-Oct-2007
[5125]
I'm not sure this will be last-expression-result.  I think it will 
be restricted to last-console-result.  afaik.  But a short-cut for 
last-expression-result could make for more codie looking code.  :)
Henrik
15-Oct-2007
[5126x3]
I don't think it would make a difference if it were in console or 
in code. I think that being able to go one result back in code would 
be highly useful, but it should be done in a readable way.
a word like 'previous could do that
I think to browse console results interactively, use something like 
the stack of HP calculators.
Chris
15-Oct-2007
[5129]
or: system/console/last (or whatever the appropriate R3 equivelent 
is)
Pekr
15-Oct-2007
[5130x6]
last system/console/history
ah, that is not the same ... you don't want to obtain expression, 
but a result ....
then it needs to be really assigned to some some word in system/console 
object ...
>> probe system/console
make object! [
    history: ["probe system/console"]
    keys: none
    prompt: ">> "
    result: "== "
    escape: "(escape)"
    busy: "|/-\"
    tab-size: 4
    break: true
]
pity result word is already taken for the string ....
maybe history could be two dimension block - pair of values - result, 
expression, or something like that ...
Chris
15-Oct-2007
[5136]
This isn't quite the same either (the last line could evaluate differently):

>> 'result

== result

>> res: do second system/console/history

== result
btiffin
15-Oct-2007
[5137]
All good ideas gentlemen.  For the way I work (lazy and forgetful) 
I'd prefer not to have to type system/console/last-result if we can 
convice Carl to make it nice and short like  recent  or  answer  
or ans or just  or anything along the six or less character typing 
range.  Plus if there is no shift-key involved, that'd be a bonus 
(meaning if we pick a symbol to suggest, I'd prefer backtick over 
tilde)
Izkata
15-Oct-2007
[5138]
I think I'd prefer something that's easily readable, rather than 
a symbol - so 'lastres (for Last Result) is my suggestion
Pekr
15-Oct-2007
[5139]
con, conres
btiffin
15-Oct-2007
[5140x3]
Kinda joking, but not,  last-evaluated-expression  lee  Has a sheltered 
feel to it and is a wine-makers word.  And then we could pay homage 
to The Bare Naked Ladies and call R3, Gordon.  :)
But I'll stop joking...this will be a very handy feature and doesn't 
deserve me clownin' around.  These are all good ideas.  And I think 
the fact of showing interest may move it closer to reality in R3. 
 Right now it is just a suggestion that got the nod of being possible.
Izkata I agree about readability.  A symbol may suffer abusive 'coding' 
practice if it ends up being last-expression and not just last-console-expression 
and then people do use the feature in scripts.
Graham
15-Oct-2007
[5143x3]
If we can have access to an evaluation stack, let's name is stack... 
something.
And then we can pick at the stack like forth
who cares about readability
Ingo
15-Oct-2007
[5146]
As long as it's only _console_ I don't care about readybility. If 
it ends up in code, I do care much. I wouldn't like rebol to become 
the second perl ... 

Actually, if it ends up to be only the last console expression, I'd 
vote for something like 'last-console-expression . This is Rebol, 
after all, so you can always add sometthing like:
.: :last-console-expression
to your user.r
btiffin
15-Oct-2007
[5147]
:)  My concern for readability would be avoiding REBOL code starting 
to look like perl, where you have to decipher while reading.  Coded 
code is fine for things like C, J and R but REBOL has a very nice 
quality of being grok'ed at a glance.  Losing that would be sad. 
 ICarii said it best already ... let's not go there.  So I'd almost 
like to restrict the new feature to last-console-expression just 
so we don't go overboard with short-cut expressions in scripts.  
Thinking along those lines, perhaps system/console/last-result would 
be fine.  Developers could add .: or `: or ~: to personalize for 
console work.  Then again, system/console/last-result wouldn't want 
to be set for evey expression.  Just when needed, so it'd have to 
be an action, not a data set.


Ingo;  Wow.  As I was typing...you were echoing the same thoughts.
Ingo
15-Oct-2007
[5148]
Right, I was thinking about what you said about system/console/last-result, 
too, but was too lazy to add it to my post ;-)
Pekr
15-Oct-2007
[5149x2]
Well, REBOL is all block/series based .... and series is a "queue" 
of values. I would like to have stack of values (block of values), 
series, which we can pick-up from, sort, move, remove - no ackward 
one only value!
then define your function as you wish. Via pick, select, whatever, 
call it whatever you like .....
btiffin
15-Oct-2007
[5151]
Petr; A lot of this comes down to what is going to cost the REBOL 
evaluator.  I don't know, but have a feeling that a lot of intermediate 
results are discarded.  Could be wrong.  But if so, I wouldn't push 
for anything that will slow down current execution speed.  If the 
values are there on a stack today, great.  But II'd guess that only 
the last may easily (and zero cost to current run-time) accessible. 
 And with some fancy expressions, what goes on the stack in what 
order may be optimized differently than reading code left to right. 
 I'll ask while pointing out the interest that has been shown here 
by the group.  If coders want a pickable list of expressions today 
we have reduce and friends.  I'm more aiming to get at the last result 
from the console as I'm always forgetting to put a var: in front 
of test code, especially code tthat returns an object! that I'd like 
to probe.
Graham
15-Oct-2007
[5152x2]
I was kidding of course about readability - don't want Rebol to become 
write only like Forth :)
I guess we need to know what we can get before we start naming things.
Chris
15-Oct-2007
[5154]
I'd suggest sticking with system/console/last and then set up your 
own %user.r shortcuts around that -- everything in its place...
btiffin
15-Oct-2007
[5155]
I'm leaning toward agreement with that Chris.
Ashley
16-Oct-2007
[5156]
Ditto, and I'd like to limit the number of "console-only" words we 
add to the global context.
Kaj
16-Oct-2007
[5157]
I suggest 'bike-shed
btiffin
16-Oct-2007
[5158]
Kaj;  :)

The request for this feature has become more formal.  Mr. Hawley 
put in the ticket.  He has an excellent grasp of upcoming security 
and threading issues and worded the request accordingly.  The request 
went   in as system/console/last.  That could change and it's still 
only a request; but there it is.
Graham
16-Oct-2007
[5159x2]
so, it's only console?
not usable from within a script?
btiffin
16-Oct-2007
[5161]
That's still a question, but I'd guess console, as part of the display 
result sequence...maybe?
Gabriele
17-Oct-2007
[5162]
usable within a script

 would just slow things down, as there's no reason to use it at all.
Graham
17-Oct-2007
[5163]
to save allocating a local variable ?
Chris
17-Oct-2007
[5164]
It might affect readability?

1 + 2
4 - result
PeterWood
18-Oct-2007
[5165]
Then can't you just compound the two lines and save a carriage return 
as well ;-)
Graham
18-Oct-2007
[5166]
Just wondering if there is any point in having a result stack we 
can push results onto and then use?  Is that faster than using local 
variables?
Ingo
18-Oct-2007
[5167]
Dunno. But then, does it help readability?
Graham
18-Oct-2007
[5168x2]
there must be a penalty in creating variables in terms of memory 
allocation, and deallocation
if readibility were so important, Carl woudn't use one letter variables 
in his code :)
Gabriele
18-Oct-2007
[5170x2]
the stack would have the same penalty as variables
also, if it's the last expression, no variable is needed.