REBOL Oneliners
rebol.com
rebol.com
It was by far the most enjoyable programming I ever did. But (why does there always have to be that But) using it at work, as I did after school, was a disservice to everyone around me. Hardware - was all 64bit Rebol was still 32bit. Proprietary - brilliant author was from the time before, when that made sense. Co-workers - most neither could, nor wanted to "get it" Rebol sure was not going to help on their resumes.
It tried to go Rebol2->Rebol3 ala perl/python but when a community in the hundreds splinters, there is just not that much left.
However, Rebol 3 (and it's active descendant Ren-C) bootstraps itself; it does not require Rebol 2.
(And edit to say, I think some of the core team got pretty far into the blockchain rabbit hole at some point, so that may have derailed more mainstream efforts)
Regardless of the blockchain involvement, I encourage everyone to stay open-minded and judge the project on its technical merits.
https://www.reddit.com/r/redlang/comments/dzobh0/latest_gtk_...
I wish REBOL 2 was still being developed and its GUI was updated to latest trends. I'd switch back to it in a heartbeat. I'm quite excited about Red and been playing with it occasionally.
foreach file load %./ [if not dir? file [write/binary join ftp://user:pass@example.com/ file read/binary file]]
Those two sets of [ ] are the block! datatype, which is an array-like type. "foreach" is a function that takes an identifier and two block!s ("load" returns a block!), executing the second for each one in the first.Quick example showing it:
>> something: [print val]
== [print val]
>> foreach val [1 2 3] something
1
2
3
>> append something [+ 3]
== [print val + 3]
>> foreach val [1 2 3] something
4
5
6
The second example in the oneliners kinda shows this as well, but I suppose it's not obvious without knowing more of the language. The outer block! is actually a separate dialect being passed to the layout function as data, that the layout function parses and handles. What's normally thought of as rebol is called the "do dialect", because that's how you run a block! as code: >> X: [print 1 + 2]
== [print 1 + 2]
>> do X
3
>> X/3
== +
>> X/3: to-word {*}
== *
>> X
== [print 1 * 2]
>> do X
2https://github.com/red/red/wiki/%5BDOC%5D-How-Red-works:-a-b...
The Intel binary is 32-bit only. Catalina will only run 64-bit binaries.
$ file rebol
rebol: Mach-O executable i386I lost access to so much cherished stuff that I am currently evaluating a switch to Ubuntu 20.04
Must have just gotten lucky, but literally nothing stopped working when I migrated to a new Catalina machine. Ok I had to do some jimmying to get Keybase back, but that wasn't a 32/64-bit issue, that was weird kext permissions stuff.
Pretty much 90% of my Steam games that had Mac versions, suddenly did not work. And there was no warning, because most of them weren't currently installed (so the catalina installer didn't warn); I just got a cross through them after upgrading.
"Mac gaming" wasn't something I did that much anymore, but I had a lot of attachment to certain games (some which of course "I totally intended to replay one day") and suddenly they became unavailable.
Many older apps I still ran now and then, stopped working.
I kept my S.O. on Mojave so that I wouldn't be forced to upgrade her Office suite to the subscription model Microsoft is pushing.
Etc.
I understand the frustration, though. Apple's spent the last 5 years or so dropping features I care about and breaking things important to me, across my iPhone, iPad, and MBP.
The intel version is i386. 32bit, which is not supported on Catalina either/
I'd rather go through 5 lines of simple statements than try to decipher a "clever" one liner.
From the fine article : > Open a GUI, read web page, sent it as email
You really want to do that in one line ?
why would it be undesirable to write short code that can do that?
I would say < 80 is definitely a one-liner, < 100 is more-or-less a one-liner, < 120 is really pushing it. After that, you're cheating. Even Java style guides cut you off after 120.
12 of these "one-liners" fail even the most permissive of these criteria, but, y'know, YMMV. None are over 140.
Their limit is at the top of the page:
> 2. How long is a line? Here, we limited users to 132 chars. It's the old line printer standard.