Main Page/RED By Topics: Difference between revisions

m
no edit summary
(Created page with " = Topics = Code is DATA/Data is CODE Series/Blocks Contexts VID Databases RED/Systems Compiling PARSE")
 
mNo edit summary
Line 5:
 
 
=== Series/Blocks ===
 
Selecting
Contexts
 
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
Line 16 ⟶ 104:
 
Compiling
 
PATHS
 
NONE, TRUE, EMPTY, ETC.
 
Active words
 
Natural language
 
PARSE
 
DSL