+ 2 3 return gibberish


#1

Hello,

With Ren-c:

>> 2 3 +
** Script Error: + is missing its value2 argument
** Where: console
** Near: [... 2 3 + ~~]
** Line: 1

>> 2 + 3
== 5

>> + 2 3
== 3

With R3 Alpha:

>> 2 3 +
** Script error: + is missing its value2 argument

>> 2 + 3
== 5

>> + 2 3
** Script error: + operator is missing an argument

Case 3 is not working with R3 Alpha and seems wrong in ren-c? Is that expected?


#2

Case 3 is not working with R3 Alpha and seems wrong in ren-c? Is that expected?

An experimental (and I think interesting) feature has been added to the console, whereby the last result is spliced in:

Persistence of Memory: The Enfix Console Trick

So your + 2 was picking up the previous result, adding to it, and that was discarded and you got 3. If you'd just said + 2 you'd have seen:

>> 2 + 3
== 5

>> + 2
== 7

The code implementing this is a fairly trivial console hook. I think it's particularly nice for storing the last value with SHOVE.

>> 300 + 4
== 304

>> -> j:
== 304

>> j
== 304

I was thinking it should check to see if the first thing after it is an enfix action with an <end>-able first argument. If so, it likely has meaning ascribed to that, so you probably shouldn't fake the result...only do it if it would be an error otherwise.

But even if that were the case (as here, where it would only be an error) it seems it caused confusion in your case to not error. So maybe it's something that shouldn't be in by default. Bit of a shame, though.

I feel like the default console needs some kind of options page for ticking these things, and maybe each time you start up (or every few times) it could offer you a tip to teach you about one of them it hasn't told you about before...


#3

Thank for your answer.

Don't know the best attitude about that. (Personally I always disable the software startup aid, it annoys me.)

I take the path of learning rebol and read REBOL/Core Users Guide chapter after chapter (ch. 4 at this point), not just being interested byit's concepts. I try samples in ren-c and r2 and r3. The differences offer surprises.


#4

Definitely interested in your feedback. If you kept notes that would be great.

One thing in particular is keeping notes of anything you find striking or novel in this day and age. We're looking to kind of build a "cool" list. But it's hard for me to know what other people think is cool--my interests are not particularly typical.

You may be aware there is an effort to build a Ren-C "skin" for Rebol2/Red/R3-Alpha called "Redbol". It's not operational right this minute; I have to go over it again (haven't done so in a few months, and no one is maintaining it, so it gets out of date). But I definitely want it to be able to emulate pretty much anything.


#5

I discovered your emulation layer yesterday. I have not yet assimilated the main concepts. My understanding is too superficial to give an opinion.

At the moment I find the syntax confusing and the documentation of the functions in the console too succinct to be useful. As the first three chapters are an initiation it is not surprising that I slap my head against walls.

Maybe I have to go one step back because I did not take notes about my learning sessions.


#6

This is a problem.
For that reason I created a repo to help users but it hasn't been updated since I first did it.

Try this

help/doc +

which takes you to https://github.com/gchiu/reboldocs/blob/master/-plu.MD

You can now add an example under the autogenerated line, and do a PR for me to accept.

And here's an example of one that I did a while ago