Каждый тип данных имеет свое собственное лексическое представление, которое позволяет вам взаимодействовать с его внутренними данными (или нет).
Нет фактического пути синтаксиса или оператора в REBOL. В основном это связано с тем, что Rebol не является языком ООП, даже если у него есть объект! Тип данных.
Возможно, вы не заметили, что код FOO/BAR
вовсе не является выражением, а представляет собой один элемент данных, который на самом деле имеет path! *datatype*
>> FOO: context [BAR: "WTF!"]
>> type? first [ FOO/BAR ]
== path!
Только пути позволяют перемещаться по данным Rebol «буквально». Это происходит только тогда, когда пути _ оцениваются _. В этом случае вы получите значение, полученное путем навигации по этому пути.
>> type? do [ FOO/BAR ]
== string!
В Rebol универсальный тип доступа «accessors» не лексический, а программный по своей природе. Как показала Sunanda, вы используете различные серии функций для непосредственного управления литеральными данными.
это очень мощно, так как они могут быть "прикованы", например:
>> x: head remove back back back tail "-|_|-"
== "-||-"
В заключение я дам вам тизер более сложного использования пути ... выражения пути!
>> blk: ["12" "34" "56" "78" "90" "ab" "cd" "ef"]
>> skip-size: 2
>> item: 3
>> blk/(skip-size * item - 1)/2
== #"0"
Обратите внимание, что вы действительно можете поместить любой код в парен! если это следует за данными, по которым можно перемещаться.