
EN: rebol.com -
rebol.org -
rebol.net -
FR: Rebol Documentation Project -
forum RebelBB -
rebol-france.org -
forum codeur -
Définit une fonction utilisateur avec des spécifications et un corps.
func spec body
spec - Texte d’aide (optionnel) suivi par les mots arguments (et les types et texte d’aide optionnel) (type: block!)
body - L’argument du corps de la fonction.(type: block!)
Le bloc spec spécifie l’interface d’une fonction. Il peut commencer avec un texte d’aide optionnel qui sera affiché quand on utilise la fonction HELP. Ce texte est suivi par les mots qui spécifient les arguments de la fonction. Chacun de ces mots peut être inclu dans un bloc optionel de type de données. Ceci spécifie un type de données valide pour l’argument. Celui-ci peut être suivi par un texte qui décrit l’argument plus en détail.
L’argument words peut aussi spécifier quelques variations sur le manière dont l’argument sera évalué. Le plus commun est ‘word qui indique qu’un mot est attendu qu’il doit être évalué (la fonction a besoin de son nom, pas de sa valeur). Un :word peut aussi être donné lequel aura la valeur de l’argument, mais ne procèdera pas à l’évaluation complète.
Pour ajouter des raffinements pour une fonction fournir un slash (/) devant un argument de mot. A l’intérieur de la fonction l’existence du raffinement peut être testé. Si le raffinement est suivi par un ou plusieurs arguments, ils seront associés avec ce raffinement et ne sont évalués que lorsque le raffinement est présent.
La variable locale est spécifiée après un raffinement /LOCAL.
Une fonction retourne la dernière expression qu’elle a évaluée. Vous pouvez aussi utiliser RETURN et EXIT pour sortir de la fonction. RETURN donne une valeur en retour. EXIT ne retourne aucune valeur.
sum: func [a b] [a + b] print sum 123 321 444
sum: func [nums [block!] /average /local total] [ total: 0 foreach num nums [total: total + num] either average [total / (length? nums)][total] ] print sum [123 321 456 800] print sum/average [123 321 456 800] 1700 425
print-word: func ['word] [print form word] print-word testing testing
does - Un raccourci pour définir une fonction qui n’a pas d’argument ni de variable locale.
exit - Sort d’une fonction, ne retourne aucune valeur.
function - Définit une fonction utilisateur avec des variables locales.
function? - Retourne TRUE pour une valeur fonction.
has - Un raccourci pour définir une fonction qui a des variables locales mais aucun argument.
make - Construit et retourne une nouvelle valeur.
return - Retourne une valeur depuis une fonction.
use - Définit un mot local pour un bloc.