Main Page/RED By Topics

Topics

Code is DATA/Data is CODE


Series/Blocks

Selecting

Select returns the value next to the matched key. It could search also for types

Simplest Select Syntax is

Select BLOCK/SERIES KEY

Example:


>> select [a b c d] 'b == c

Now, the third one will be a block

Select returns the element

>> a: [a b [1 2 3 4] d] == [a b [1 2 3 4] d]

>> select a 'b == [1 2 3 4]


SELECT is the short form of:

>> probe first next find a 'b [1 2 3 4] == [1 2 3 4]

which could also be written as

>> probe pick next find a 'b 1 == [1 2 3 4]


Finding >> probe next find a 'b [[1 2 3 4] d] == [[1 2 3 4] d]


>> a: [a b [1 2 3 4] d] 'b == b >> probe first next find a 'b [1 2 3 4] == [1 2 3 4] >> select [a b c d] 'b == c >> select a 'b == [1 2 3 4] >> a: [a b "c1234" d] == [a b "c1234" d] >> select a 'b == "c1234" >> find a 'b == [b "c1234" d]


(TODO: Clarify if it copies)

Findind

Finding a value in a series/block requires FIND It returns the block positioned at the match or (none?)

To obtain the numeric index/position you should use POS? Example: POS? FIND a 'b


Note the difference in the output between finding and selectin

When exploring RED this could led to a misunderstanding [1 2 3 4] = a block containing 1 2 3 4 1 2 3 4 = a block containing another block which contains 1 2 3 4


[1 2 3 4] the element in the third position, which is a block [[1 2 3 4] d] the original series starting at thrid position which contains the thrird and fourth element

to get again the whole block you shoud

head a (why not a: head a)


Contexts

VID

Databases

RED/Systems

Compiling

PATHS

NONE, TRUE, EMPTY, ETC.

Active words

Natural language

PARSE

DSL