Comments on: Localized FUNCTION and CLOSURE definitions accepted
REBOL Technologies

Comments on: Localized FUNCTION and CLOSURE definitions accepted

Carl Sassenrath, CTO
REBOL Technologies
15-Feb-2014 20:22 GMT

Article #0543
Main page || Index || Prior Article [0542] || Next Article [0544] || 8 Comments || Send feedback

The idea has been around for a while now that Rebol needed a more "closed" environment for functions, where local variables would be implicit rather than explicit. In other words, why put the burden on the programmer of tracking what's a local variable. It's problematic if you're not paying attention.

Rebol version 3 added that feature, but the concept wasn't embraced in the naming. For example, the most obviously named FUNCTION mezzanine, used by many newcomers/beginners, didn't support it. You had to use FUNCT. Not so nicely named. To change the definition was debatable. It's friendlier, but disruptive.

Having taken a long break from Rebol development, I guess these days I'm more in favor of disruption and going down a better path for new users. As I've said many times, Rebol 3 is still in alpha. That means we get to fix stuff and make it better. Sorry if it's a bit disruptive. There are always a few bumps in the development road, but you can be afraid to keep moving forward.

For the record, here's the GitHub pull:

Now, if you think it needs further revision, it's time to submit that. Let's get it ironed out.

And many thanks to BrianH, Ladislav, Andreas, BrianD, and anyone else who is helping to push this along.



15-Feb-2014 21:57:31
Maxim may have put it best in CureCode:

YAY! let's make a fire and dance around it ... this is a joyous event... the death of abysmal R2 'FUNCTION'.

Hopefully there are some fires burning out there tonight. :-)

I had a little celebration of my own on StackOverflow. Due to its "wiki" nature, I was able to fix up all the Q&A for Rebol to use FUNCTION instead of FUNCT. Another great feature, so I hope people will keep pushing on SO Q&A as a go-to point for institutional knowledge about Rebol and Red.

I guess these days I'm more in favor of disruption and going down a better path for new users. As I've said many times, Rebol 3 is still in alpha. That means we get to fix stuff and make it better. Sorry if it's a bit disruptive.

Great to hear you on board with thinking this way. Unfortunate it had to come with a long absence to bring it about. :-(

I like how you phrase it as "a better path" for new users, vs. simply "making it easier". There are some examples of things like adding /ELSE to IF which might seem "easy" but are the wrong direction. Then there are examples like getting those character set generators into the box and usable from PARSE, so people can off the bat write things like:

>> parse "1234abcde00DECAFBADFF" [
       4 digit
       some letter/lowercase
       some digit/hex/uppercase
== true

Lots of other areas where people are consistently getting turned off for no reason, like on mathematical precedence rules. There needs to be an expr in the box that can evaluate math using the rules people expect. When people challenge the precedence, just show them that and end the debate:

>> expr [1 + 2 * 3]
== 7

(And HTTPS is a must-have-soon. So hopefully you can publish what you've got from Rebol2 in that side-repository for us to pore over. We can see what to borrow from that and what to take from Saphir in the implementation.)

The only way things can stay moving is if the integrations keep running and new things are tried. If they don't work they can be backed out. Instability is a relatively minor concern when compared with stagnation/fragmentation. If people need stability they should use the stable branch.

So let's not lose the momentum! Let's ensure there's an understanding that community representative(s) can run integrations on master when they need to be in!!! Onward!

Brian Hawley
16-Feb-2014 14:03:38
Good to see the FUNCTION fix going through. There are a couple tweaks that seem worth doing, so I'll make tickets for them.

LSO good to see merged is the REWORD revamp. That took a lot of negotiating and tweaking to get right. I'm going to have to rewrite the StackOverflow article about it accordingly. Next step is to write the native version, now that we have the behavior nailed down.

The next thing to get through are the unwind fixes, those are critical. After that, let's see!

15-Jul-2014 0:47:48
is REBOL dead? (And I mean Carl's REBOL, not RED)
Steven White
15-Jul-2014 14:30:04
I am wondering the same thing. I am using REBOL 2 more, as time goes by, but just for non-critical programs. After a decade or more of dabbling with it, I am finally getting the hang of it. The whole issue is not terribly important to me since I hope to retire in two years. I have thought that after that event, when I will have more time and will be in need of a bit of mental stimulation to hold off dementia, I will work even more with REBOL for fun, with the goal of eventually being one of the world's foremost experts on something that hardly anyone cares about.
16-Jul-2014 2:52:59
is REBOL dead?

Pretty much so. Nothing happened for nearly two years.

There is some development on a Rebol clone called Red.

But Rebol clones have never had much traction. Boron, Oscar etc have all come and gone with some fanfare but not much delivered to actual fans.

Time to close the lid on Rebol and say goodnight.

12-Aug-2014 3:50:22
Thanks for the troll - not biting. Why are you here?

I'm into this language because it is compact and one can do great things with not much effort.

The Raspberry Pi and the like is screaming out for this with a proper colourised or "live help" editor and a full gui.

We have to encourage kids while they are young and oldsters who have a particular job waiting for this device.

Jack Gritt
13-Oct-2016 19:44:40
You should have used FUNCL and not FUNCT.
john smith
5-Dec-2019 7:17:11
thanks for the information provided by you it's really a great help from your side but i got the complete solution from mentioned site

Post a Comment:

You can post a comment here. Keep it on-topic.


Blog id:



 Note: HTML tags allowed for: b i u li ol ul font p br pre tt blockquote

This is a technical blog related to the above topic. We reserve the right to remove comments that are off-topic, irrelevant links, advertisements, spams, personal attacks, politics, religion, etc.

Updated 22-Feb-2024   -   Copyright Carl Sassenrath   -   WWW.REBOL.COM   -   Edit   -   Blogger Source Code