===== Do - Détail de la fonction =====
=== Sommaire : ===
Evalue un bloc, un fichier, une URL, une fonction, un mot, ou n'importe quelle autre
valeur.
=== Usage : ===
do value
=== Arguments :===
value - Normalement un nom de fichier, une URL ou un bloc.
=== Raffinements : ==
**/args** - Si "value" est un script, ce raffinement initialisera system/script/args pour ce script
arg - Argument passé par un script. Normalement une chaîne de caractères (type: string!)
**/next** - Exécute uniquement l'expression suivant. Retourne un bloc avec un résultat et une nouvelle position.
=== Description : ===
Accepte un bloc, ou charge une chaîne, un fichier, ou une URL dans un bloc, puis évalue les expressions du bloc. Fichiers et URLs doivent avoir une entête REBOL. Les éléments sont évalués de gauche à droite. Quand l'élément qui est trouvé est une fonction requièrant des arguments, les arguments de cette fonction sont évalués en premier puis passés à cette fonction avant que la fonction soit évaluée. La valeur finale est retournée.
Le raffinement /ARGS vous permet de passer des arguments à un autre script et est utilisé avec un fichier ou une URL. Les arguments passés avec /ARGS sont enregistrés dans la variable system/script/args à l'intérrieur du contexte chargé pour ce script.
Le raffinement /NEXT retourne un bloc composé de deux éléments. Le premier élément est le retour évalué de la première expression trouvée. Le second élément est le bloc original avec l'index courant placé après la dernière expression évaluée.
print do [1 + 2]
3
print do "1 + 2"
3
do "repeat n 3 [print n]"
1
2
3
do [print "doing"]
doing
blk: [
[print "test"]
[loop 3 [print "loop"]]
]
do second blk
loop
loop
loop
do first blk
test
blk: [
[1 + 2]
[3 * 4]
[6 / 3]
]
while [not empty? blk][
set [value blk] do/next blk
print value
]
3
12
2
=== En relation : ===
[[Articles:dicorebol-fr:load]] - Charge un fichier, une URL, ou une chaîne de caractères (type: string!). Attache un mot à un contexte global.
[[Articles:dicorebol-fr:loop]] - Evalue un bloc un nombre spécifié de fois.
[[Articles:dicorebol-fr:reduce]] - Evalue une expression ou bloc d'expressions et retourne le résultat.
[[Articles:dicorebol-fr:repeat]] - Evalue un bloc un nombre de fois ou sur une série.
=== Version anglaise officielle :===
http://www.rebol.com/docs/words/wdo.html