none и булеви стойности ----------------------- none „нестойност“ false неистина true истина and логическо „и“ or логическо „или“ not логическо отрицание В контекст на условие всички различни от none и false стойности се разглеждат като „истина“. действия с редици ----------------- next s следващ курсор back s предходен курсор skip s n следващ на n стъпки курсор head s курсор към началото tail s курсор след края head? s в началото? tail? s след края? length? s дължината index? s къде спрямо началото (от 1 до #s+1)? offset? s s дължината на частта от редицата в полуотворения интервал first s съответният по поредност член спрямо курсора second s (не действителното начало) third s - - - fourth s - - - fifth s - - - last s последният член pick s i член по поредния му номер спрямо курсора (не началото) s/i като pick, но само за име s и константно i insert s v вмъква преди мястото, което сочи s; резултатът е курсор след мястото на вмъкването /part s v s само част от v (до къде), ако е редица /part s v n само част от v (брой членове), ако е редица /dup n брой пъти /only append s v добавя v към редицата s, все едно insert tail s v /only ако v е редица, остава единичен член на s alter s v добавя v, ако отсъства, а ако не – премахва я от s; връща true при добавяне copy s копие на член или отрязък /part s s (полуотворен интервал) /part s n (начало и брой) /deep s remove s премахва член(ове) от даденото място /part s s /part s n remove-each име s b премахва всеки член на s, за който пресмятането на блока b дава вярно (променя самата редица, не образува копие) reverse s обръщане на частта от редицата от s нататък clear s изтрива до края poke s i v променя стойността по зададен пореден номер в редицата change s v променя отделен член или отрязък /part s v s само част от v (до къде), ако е редица /part s v n само част от v (брой членове), ако е редица /dup n /only replace s v₁ v₂ заменя един или всички /all reduce блок пресмятане на изразите в блок, дава блок от стойности compose блок като reduce, но пресмятане само на изразите в скоби ( и ) /deep пресмятане и на вложени в скоби изрази join v s образува редица с типа на v от членовете на v и s; ако v не е редица, преобразува се в низ; ако s е блок, членовете му се пресмятат rejoin s като join, но за първи аргумент се взема първият член на s, а за втори – остатъкът на s, и двете след пресмятане в s union s₁ s₂ обединение intersect s₁ s₂ сечение exclude s₁ s₂ разликата s₁\s₂ difference s₁ s₂ симетрична разлика unique s множеството от членове, всеки по веднъж find s v търсене на стойност или тип; връща курсор или none find s t extract s n редица от извлечени членове през n броя (n-1 пропуснати) /index i задава начало sort s подреждане на числа, низове, времена, дати, пари и др. /skip i сравняват се подредици от по i броя (вместо от по 1) /reverse в обратен ред /compare f с изрично зададен предикат за сравняване специфично за низове -------------------- {...} низ с посочено съдържание "..." низ с посочено съдържание #"…" литера с посочено съдържание ^/ „нов ред“ в низ ^- „табулация“ в низ ^" " в низ ^} } в низ ^(xx) ASCII xx (16-чно) в низ uppercase s превръщане в низ от главни букви (същия низ) /part дължина lowercase s превръщане в низ от малки букви (същия низ) /part дължина trim s изтрива шпации и др. под. (в същия низ); има множество уточнители form v образува „удобен за четене и печатане“ (все едно от prin) низ от каква да е стойност mold v образува четим от REBOL низ за стойността reform прилага reduce и form remold прилага reduce и mold as-binary s образува 16-ен низ (от тип binary!): #{...hex-string...} as-string s образува низ от тип string! от какъв да е низ dehex s заменя тройки %xx със съответната литера compress s образува 16-ен низ чрез уплътняване на даден низ decompress s-bin образува низ от тип string! от уплътнен read-cgi низ от уебсървър decode-cgi s-cgi образува блок от двойки – имена и прочетени стойности управление ---------- if израз блок условно изпълнение на блока either израз блок блок условен избор между две действия any блок пресмятане на изразите в блока до намиране на истинен; ако има такава стойност, тя е резултатът, иначе – none all блок пресмятане на изразите в блока до намиране на неистинен; ако има такава стойност, резултатът е none, иначе – последната пресметната select редица ключ ако се намери стойността ключ в редицата, дава се следващата я стойност, v; ако не се намери или няма v – none; често след select се изпълнява if v [do v] switch ключ блок switch/default ключ блок блок подобно на select, но избраното се изпълнява и се дава резултатът от това изпълнение; вторият вариант задава и действие при ненамиране case блок блокът е редица от двойки булев израз – блок; изпълнява се /all първият блок, чието условие е истинно; при /all се изпълняват всички блокове с истинни условия try блок блокът или се пресмята успешно и се дава произведената от него стойност, или завършва с грешка (което се проверява с предиката error?) throw израз излъчва от блока признак за грешка, заедно със стойността на израза catch блок прехваща и дава излъченото от throw attempt блок съкратен израз за error? tryuntil блок пресмята блока, докато се получи истина и дава тази стойност while блок блок пресмята втория блок всеки път щом първия даде истина, след което завършва loop цяло блок премята блока посочения брой пъти repeat име цяло блок подобно на loop, но с достъп до брояча под посоченото име for име от до стъпка блок обхождане на аритметична прогресия с достъп до брояча foreach име редица блок пресмятане на блока, като името обхожда членовете на редицата; вместо едно може да има блок от имена, за обхождане по групи forall редица блок блокът се изпълнява за всяка стойност на курсора до края ѝ forskip редица стъпка блок подобно на forall, но с изрично зададена стъпка на курсора forever блок безкраен цикъл break break/return израз прекъсване на цикъл; във втората форма с даване на резултат return израз завършване на функция с даване на резултат exit завършване на функция без даване на резултат halt връщане към конзолата на REBOL quit излизане от интерпретатора функции ------- function параметри локални тяло образуване на функционна стойност от блок от имена-параметри (и уточнители), блок от локални имена и блок-тяло func параметри тяло опростен вариант на function, без задаване на локални имена, определен така: func: make function! [params body] [make function! params body] does блок опростен вариант на func, без задаване на параметри разни ----- 'име името като „дума“ име: цитиране на променлива при присвояване :име цитиране на функционната стойност на променлива set 'име стойност присвоява стойност на променливата с посоченото име set блок блок множествено присвояване get 'име стойността на променливата с посоченото име prin израз печатане в конзолата на стойността на израза print израз като prin, но после минава на нов ред probe стойност печатане като през mold и даване на стойността (удобно за проследяване на стойности) word! типовете на стойности – самите те от тип datatype! char! string! block! integer! decimal! ... word? израз проверяване дали типът на дадена стойност е посоченият с името char? израз string? иараз block? израз integer? израз decimal? израз ... type? израз типът на стойността на израза do израз изпълняване на интерпретатора върху аргумента do низ do име-на-файл load низ прочитане на източника, даване на съответната стойност load файл load уебадрес make тип аргументи образуване на стойност от посочения тип с посочените атрибути смеси („обектни“ стойности) --------------------------- make object! [име: стойност ...] образуване на смес („обект“) с посочените имена на членове и стойности make обект [име: стойност ...] образува нов обект от друг, добавяйки имена на членове и стойности или променяйки стойности обект/име цитиране на член на обект self име на член със стойност препратка към дадения обект in обект 'име името на член в контекста на обекта (или none); така може да се цитира член с непряко (като стойност) посочване на името – удобно за get или set first обект блок от имената на членовете на обекта, вкл. self second обект блок от стойностите на членовете на обекта, вкл. на self