Questions tagged [rebol]

Rebol is a modern interpreted language where code is data. It isn't object oriented, but has objects. It isn't a functional language but has first class functions. There are virtually no syntax rules or immutable keywords, making it ideal for developing domain-specific "dialects".

Rebol is a homoiconic language with heritage from , , , and . Language focus is on careful control of dependencies, and concern over the size of the interpreter and code...as well as achieving an English-like readability. The project's motto is "Rebel against software complexity".

On 12-Dec-2012, the unfinished ANSI-C sources of the Alpha release of Rebol3 was open-sourced under an Apache 2.0 License. Standalone "zero-install" binaries are available for x86 and ARM platforms--covering Linux/Windows/Mac/Android, 64-bit builds, hard-float compatibility and HaikuOS. Core builds are about half a megabyte, while GUI builds are around 1 megabyte (uncompressed).

(Note: Several forks of the code exist, with a community wiki summary at REBOL3 - what is the difference between the different branches?)

In addition to inheriting the "code is data" paradigm of Lisp, Rebol has a rich type system...natively recognizing patterns like URLs, dates, HTML tags, currency, and binary literals. Of note, Douglas Crockford (of JSON and JSLint) has credited Rebol as a source of inspiration for JSON, adding:

"Rebol's a more modern language, but with some very similar ideas to Lisp, in that it's all built upon a representation of data which is then executable as programs. But it's a much richer thing syntactically.

Rebol is a brilliant language, and it's a shame it's not more popular, because it deserves to be."

    —Douglas Crockford, founder of JSON, 2009 [link]

A modern compiled variant of Rebol which draws in several new concepts is , which is under heavy development.

696 questions
6
votes
1 answer

how to properly parse paired html tags?

the question is about parsing an html stream obtained by load/markup in a way you can get html tags constituent parts, i.e. when you find
my text
you should end with something like
, {my text} and
in the…
Pep
  • 451
  • 2
  • 9
6
votes
1 answer

How to remove the default title bar on rebol?

How to remove the default title bar on rebol?
金馆长
  • 217
  • 2
  • 7
6
votes
1 answer

Escape symbols in Rebol url

I am using Rebol 2.7.8.3.1. I am trying to escape an @ symbol in my url, but it is not working. I have also tried manually escaping it, but that does not work either. I have tried the following: read ftp://mydomain:12345/path/to/@folderA read…
senevoldsen
  • 337
  • 3
  • 8
6
votes
2 answers

Debug and avoid periodic REBOL2 error, that try[] does not(?) catch?

Apparently un-catchable error while toying around with Rebol/Core (278-3-1) to make a kind-of web-server to serve a static text, containing a redirect link to a new service location. The specific location of the error appear to be in example code…
fsteff
  • 543
  • 5
  • 19
6
votes
1 answer

multi-line statements in REBOL?

An annoying problem I'm having with the REBOL3 REPL is that it won't accept multi-line statements. For instance, I would like to type "some_obj: make obj! [" , hit enter, and then continue the statement. This is relevant for me as I am using a Vim…
Friendly Genius
  • 305
  • 3
  • 12
6
votes
3 answers

Why do function "have memory" in REBOL?

In rebol I have written this very simple function: make-password: func[Length] [ chars: "QWERTYUIOPASDFGHJKLZXCVBNM1234567890" password: "" loop Length [append password (pick chars random Length)] password ] When I run this…
Caridorc
  • 6,222
  • 2
  • 31
  • 46
6
votes
2 answers

Retrieving function arguments programmatically in Rebol

This works at the shell level: >> a: "hello" == "hello" >> get to-lit-word "a" == "hello" But within a function like this: f: func [ arg1 ] [ v1: get 'arg1 ? v1 v2: get to-lit-word "arg1" ? v2 ] >> f "goodbye" V1 is a string of…
dogeye
  • 177
  • 6
6
votes
1 answer

How to start the Rebol2 /View console on a server?

I want to run Rebol2 /View on an Ubuntu 14.04 server to be able to load a shared library (which apparently /Core cannot do). I have managed to install all the required dependencies, but now I suspect, by default, /View wants to open the Viewtop…
mydoghasworms
  • 18,233
  • 11
  • 61
  • 95
6
votes
1 answer

view layout rebol 3 not working

I've copied Rebol3 to my computer under windows. I am running it from the download not a full install, and it and seemed ok. I tried using some very simple sample code for the GUI in the console and it fails with various error messages. If I put in…
DNMurphy
  • 129
  • 1
  • 7
6
votes
4 answers

What should I call a REBOL function that does list comprehensions?

REBOL has no built-in way to perform list comprehensions. However, REBOL has a powerful facility (known as parse) that can be used to create domain-specific languages (DSLs). I've used parse to create such a mini-DSL for list comprehensions. In…
Gregory Higley
  • 15,923
  • 9
  • 67
  • 96
6
votes
1 answer

Rebol 3 functions MODIFIED? and EXISTS? don't work on URL type

Do any of the REBOL 3 gurus here know why the modified?, exists? and size? functions fail on R3 when targeting a URL? These functions work fine on local files. I am very familiar with R2, but R3 behavior seems strange at times. I am using stock code…
kris_rg
  • 63
  • 3
6
votes
6 answers

How do I convert set-words in a block to words

I want to convert a block from block: [ a: 1 b: 2 ] to [a 1 b 2]. Is there an easier way of than this? map-each word block [ either set-word? word [ to-word word ] [ word ] ]
johnk
  • 1,102
  • 7
  • 12
6
votes
1 answer

Rebol, extensions and function naming

I am working on some extensions for Rebol 3 (posix/fann/math). To avoid global namespace pollution, I am exporting the functions with a simple prefix source identifier. For example: POSIX-FORK for fork, or POSIX-NANOSLEEP for nanosleep. Is there any…
TomBon
  • 61
  • 3
6
votes
2 answers

Why does ALSO usage lead to different results in R2 and R3?

This code returns -1 for R3 and +1 for R2. I'd like to know what I am doing wrong. f: func [] [ also return 1 return -1 ] f
Jina.
  • 105
  • 6
6
votes
2 answers

Why does return/redo evaluate result functions in the calling context, but block results are not evaluated?

Last night I learned about the /redo option for when you return from a function. It lets you return another function, which is then invoked at the calling site and reinvokes the evaluator from the same position >> foo: func [a] [(print a)…
1 2
3
46 47