Fonction printant son propre nom | |
Reb-Kodeur | 22-Sep-2006/11:37:40+2:00 |
Je me souviens avoir demandé une fois sur codeur.org une manière d'obtenir la liste d'arguments d'une fonction, à l'intérieur même de la fonction.. Est-il possible de réécrire la fonction 'func, afin qu'elle écrive par elle-même son propre nom, afin d'effectuer de meilleurs fichier trace. ex: ajouter: func [][ foo] ajouter ==> "in 'ajouter'" supprimer: func [][ foo] supprimer ==> "in 'supprimer'" | |
Reb-Kodeur | 22-Sep-2006/11:38:35+2:00 |
l'url du thread permettant d'obtenir les arguments passés : http://www.codeur.org/forum/message.php?ID_Sujet=1795 | |
DideC | 22-Sep-2006/14:00:53+2:00 |
make-func: func [ "Defines a user function with given spec and body." [catch] 'name [word!] spec [block!] {Help string (opt) followed by arg words (and opt type and string)} body [block!] "The body block of the function" ][ insert head body compose [system/words/print (to-lit-word :name)] set :name throw-on-error [make function! spec body] ] make-func additionner [v1 v2] [v1 + v2] additionner 1 2 | |
Coccinelle | 23-Sep-2006/23:16:53+2:00 |
Pour connaitre la liste des arguments d'une fonction, tu peux utiliser la fonction bind? : x: func [ a b c /local ][ local: bind? 'local probe first local ] >> x 1 2 3 [a b c /local] == [a b c /local] | |
Login required to Post. |