Sous XEmacs, je voudrais gagner un peu de place dans la modeline. J'ai
déjà trouvé comment retirer le « Xemacs: » avec
(setf (cdar modeline-buffer-identification) "%N")
; au lieu de "XEmacs%N:"
Maintenant, je voudrais réduire le nombre d'espaces (et tirets) un peu
partout. Les bouts de code que j'ai trouvés dans les news réécrivent
entièrement la liste modeline-format, et ça ne me plaît pas trop (ce
serait pour y remettre les valeurs par défaut, la plupart du temps).
Mon idée est plutôt de parcourir modeline-format et de retirer ou
modifier ce qui ne me convient pas. Mais mes trop vagues notions de Lisp
ne m'ont pas mené bien loin. Voilà mes essais:
; La chaîne " " est ce que renvoie (elt modeline-format 4).
; Mais ce code semble ne rien faire.
(setq modeline-format
(mapcar (lambda (x) (if (equal x " ") "A" x)) modeline-format))
; Avec une regexp, j'essaie de supprimer tous les espaces
; Pas plus de succès
(setq modeline-format
(mapcar (lambda (x) (cond (string-match "\\s" x)
(replace-match "")))
modeline-format))
; Alors que le code suivant modifie bien la modeline immédiatement
(setq modeline-format (reverse modeline-format))
J'ai l'impression que ce que veut le PO est un « remplacement récursif », c'est à dire que chaque suite de plusieures espaces (ou "-") soit remplacée.
Idéalement, oui. Mais j'ai renoncé à ça (quand j'essayais encore d'écrire la fonction moi-même) en constatant que c'était inutile en pratique (il se trouve que la première série de " " est la seule utile à remplacer).
Que pensez-vous de : (defun my-replace-modeline-format (x &optional start) .....
Ben... Je vais l'imprimer pour le lire dans le RER... C'est marrant cette idée d'appliquer des regexps récursivement. J'imagine que c'est très lispien. En Perl, on aurait fait ça itérativement (d'ailleurs, l'opérateur de regexp s'en charge, avec la bonne option).
Merci pour ta suggestion.
(string-match "(s s +|--+)" x start)) Notez que le remplacement n'est fait que pour les sous-chaînes de deux ou plus occurences d'une espace
Ça par contre, je le prends tout de suite. Tu as raison, il était stupide, de remplacer "s +". Merci!
-- Jérémy JUST
On Mon, 09 Aug 2004 18:10:37 +0200
drkm <usenet.fcaemacs@fgeorges.org> wrote:
J'ai l'impression que ce que veut le PO est un « remplacement
récursif », c'est à dire que chaque suite de plusieures espaces (ou
"-") soit remplacée.
Idéalement, oui. Mais j'ai renoncé à ça (quand j'essayais encore
d'écrire la fonction moi-même) en constatant que c'était inutile en
pratique (il se trouve que la première série de " " est la seule utile à
remplacer).
Que pensez-vous de :
(defun my-replace-modeline-format (x &optional start) .....
Ben... Je vais l'imprimer pour le lire dans le RER...
C'est marrant cette idée d'appliquer des regexps récursivement.
J'imagine que c'est très lispien. En Perl, on aurait fait ça
itérativement (d'ailleurs, l'opérateur de regexp s'en charge, avec la
bonne option).
Merci pour ta suggestion.
(string-match "\(\s \s +\|--+\)" x start))
Notez que le remplacement n'est fait que pour les sous-chaînes de
deux ou plus occurences d'une espace
Ça par contre, je le prends tout de suite. Tu as raison, il était
stupide, de remplacer "\s +".
Merci!
J'ai l'impression que ce que veut le PO est un « remplacement récursif », c'est à dire que chaque suite de plusieures espaces (ou "-") soit remplacée.
Idéalement, oui. Mais j'ai renoncé à ça (quand j'essayais encore d'écrire la fonction moi-même) en constatant que c'était inutile en pratique (il se trouve que la première série de " " est la seule utile à remplacer).
Que pensez-vous de : (defun my-replace-modeline-format (x &optional start) .....
Ben... Je vais l'imprimer pour le lire dans le RER... C'est marrant cette idée d'appliquer des regexps récursivement. J'imagine que c'est très lispien. En Perl, on aurait fait ça itérativement (d'ailleurs, l'opérateur de regexp s'en charge, avec la bonne option).
Merci pour ta suggestion.
(string-match "(s s +|--+)" x start)) Notez que le remplacement n'est fait que pour les sous-chaînes de deux ou plus occurences d'une espace
Ça par contre, je le prends tout de suite. Tu as raison, il était stupide, de remplacer "s +". Merci!
-- Jérémy JUST
Olve
Tu pinailles, là ;-) Mais cela m'a fait découvrir une petite erreur. Il faut remplacer : (1+ start))))
par : (1+ (match-beginning 0)))))
Non ! Tu enleves la chaine !!! C'est bien (1+ start).
Si je suis d'accord pour `X', je maintiens par contre le `START'. Ce n'est pas un compteur (ce que pouvait laisser supposer la petite erreur), mais bien une position de départ dana la chaîne. Et plus important, c'est le nom qu'utilisent les fonctions de correspondance de modèles, comme `string-match()'.
Les variables sont notées en capitales dans les explications, mais pas dans le code. Oui c'est bizarre et parfois je n'y sacrifie pas, mais c'est la convention, plutot que de les backquoter ce qui pourrait sembler bizarre pour le touriste :-)
Amities, Olivier
Tu pinailles, là ;-) Mais cela m'a fait découvrir une petite erreur.
Il faut remplacer :
(1+ start))))
par :
(1+ (match-beginning 0)))))
Non ! Tu enleves la chaine !!! C'est bien (1+ start).
Si je suis d'accord pour `X', je maintiens par contre le `START'.
Ce n'est pas un compteur (ce que pouvait laisser supposer la petite
erreur), mais bien une position de départ dana la chaîne. Et plus
important, c'est le nom qu'utilisent les fonctions de correspondance
de modèles, comme `string-match()'.
Les variables sont notées en capitales dans les explications, mais pas
dans le code. Oui c'est bizarre et parfois je n'y sacrifie pas, mais
c'est la convention, plutot que de les backquoter ce qui pourrait sembler
bizarre pour le touriste :-)
Tu pinailles, là ;-) Mais cela m'a fait découvrir une petite erreur. Il faut remplacer : (1+ start))))
par : (1+ (match-beginning 0)))))
Non ! Tu enleves la chaine !!! C'est bien (1+ start).
Si je suis d'accord pour `X', je maintiens par contre le `START'. Ce n'est pas un compteur (ce que pouvait laisser supposer la petite erreur), mais bien une position de départ dana la chaîne. Et plus important, c'est le nom qu'utilisent les fonctions de correspondance de modèles, comme `string-match()'.
Les variables sont notées en capitales dans les explications, mais pas dans le code. Oui c'est bizarre et parfois je n'y sacrifie pas, mais c'est la convention, plutot que de les backquoter ce qui pourrait sembler bizarre pour le touriste :-)
En fait, le mieux serait d'avoir une recursion sur x uniquement, bon ça fait écrire un chouia plus de code, mais perd moins a l'execution. Amities, Olivier
En fait, le mieux serait d'avoir une recursion sur x uniquement, bon ça
fait écrire un chouia plus de code, mais perd moins a l'execution.
Amities,
Olivier
En fait, le mieux serait d'avoir une recursion sur x uniquement, bon ça fait écrire un chouia plus de code, mais perd moins a l'execution. Amities, Olivier
drkm
Olve writes:
En fait, le mieux serait d'avoir une recursion sur x uniquement, bon ça fait écrire un chouia plus de code, mais perd moins a l'execution.
Que veux tu dire par « recursion sur x uniquement » ?
--drkm, en recherche d'un stage : http://www.fgeorges.org/ipl/stage.html
Olve <Olve@there.wd> writes:
En fait, le mieux serait d'avoir une recursion sur x uniquement, bon ça
fait écrire un chouia plus de code, mais perd moins a l'execution.
Que veux tu dire par « recursion sur x uniquement » ?
--drkm, en recherche d'un stage : http://www.fgeorges.org/ipl/stage.html
En fait, le mieux serait d'avoir une recursion sur x uniquement, bon ça fait écrire un chouia plus de code, mais perd moins a l'execution.
Que veux tu dire par « recursion sur x uniquement » ?
--drkm, en recherche d'un stage : http://www.fgeorges.org/ipl/stage.html
drkm
Olve writes:
Tu pinailles, là ;-) Mais cela m'a fait découvrir une petite erreur. Il faut remplacer : (1+ start)))) par : (1+ (match-beginning 0)))))
Non ! Tu enleves la chaine !!! C'est bien (1+ start).
Oops. En effet. Voilà ce que c'est que de se corriger à la va-vite $-). Merci.
Si je suis d'accord pour `X', je maintiens par contre le `START'. Ce n'est pas un compteur (ce que pouvait laisser supposer la petite erreur), mais bien une position de départ dana la chaîne. Et plus important, c'est le nom qu'utilisent les fonctions de correspondance de modèles, comme `string-match()'.
Les variables sont notées en capitales dans les explications, mais pas dans le code. Oui c'est bizarre et parfois je n'y sacrifie pas, mais c'est la convention, plutot que de les backquoter ce qui pourrait sembler bizarre pour le touriste :-)
Heu, je n'arrive pas à comprendre ce que tu veux dire, exactement.
--drkm, en recherche d'un stage : http://www.fgeorges.org/ipl/stage.html
Olve <Olve@there.wd> writes:
Tu pinailles, là ;-) Mais cela m'a fait découvrir une petite erreur.
Il faut remplacer :
(1+ start))))
par :
(1+ (match-beginning 0)))))
Non ! Tu enleves la chaine !!! C'est bien (1+ start).
Oops. En effet. Voilà ce que c'est que de se corriger à la va-vite
$-). Merci.
Si je suis d'accord pour `X', je maintiens par contre le `START'.
Ce n'est pas un compteur (ce que pouvait laisser supposer la petite
erreur), mais bien une position de départ dana la chaîne. Et plus
important, c'est le nom qu'utilisent les fonctions de correspondance
de modèles, comme `string-match()'.
Les variables sont notées en capitales dans les explications, mais pas
dans le code. Oui c'est bizarre et parfois je n'y sacrifie pas, mais
c'est la convention, plutot que de les backquoter ce qui pourrait sembler
bizarre pour le touriste :-)
Heu, je n'arrive pas à comprendre ce que tu veux dire, exactement.
--drkm, en recherche d'un stage : http://www.fgeorges.org/ipl/stage.html
Tu pinailles, là ;-) Mais cela m'a fait découvrir une petite erreur. Il faut remplacer : (1+ start)))) par : (1+ (match-beginning 0)))))
Non ! Tu enleves la chaine !!! C'est bien (1+ start).
Oops. En effet. Voilà ce que c'est que de se corriger à la va-vite $-). Merci.
Si je suis d'accord pour `X', je maintiens par contre le `START'. Ce n'est pas un compteur (ce que pouvait laisser supposer la petite erreur), mais bien une position de départ dana la chaîne. Et plus important, c'est le nom qu'utilisent les fonctions de correspondance de modèles, comme `string-match()'.
Les variables sont notées en capitales dans les explications, mais pas dans le code. Oui c'est bizarre et parfois je n'y sacrifie pas, mais c'est la convention, plutot que de les backquoter ce qui pourrait sembler bizarre pour le touriste :-)
Heu, je n'arrive pas à comprendre ce que tu veux dire, exactement.
--drkm, en recherche d'un stage : http://www.fgeorges.org/ipl/stage.html
Olve
drkm wrote:
Olve writes:
En fait, le mieux serait d'avoir une recursion sur x uniquement, bon ça fait écrire un chouia plus de code, mais perd moins a l'execution.
Que veux tu dire par « recursion sur x uniquement » ?
Imagines ce qui se passe si modeline-format est ("---i--" "--") : on passe deux fois sur "--" ce qui est un peu ridicule et somme toute difficile à lire. Il vaut mieux, au lieu du my-replace-modeline-format interne, un my-modify-string qui ne s'occupe que de la chaine en question.
Voilà, j'espère que c'est plus clair ! Mais le code initial fonctionne très bien. Amitiés, Olivier
drkm wrote:
Olve <Olve@there.wd> writes:
En fait, le mieux serait d'avoir une recursion sur x uniquement, bon ça
fait écrire un chouia plus de code, mais perd moins a l'execution.
Que veux tu dire par « recursion sur x uniquement » ?
Imagines ce qui se passe si modeline-format est ("---i--" "--") : on
passe deux fois sur "--" ce qui est un peu ridicule et somme toute
difficile à lire. Il vaut mieux, au lieu du my-replace-modeline-format
interne, un my-modify-string qui ne s'occupe que de la chaine en question.
Voilà, j'espère que c'est plus clair !
Mais le code initial fonctionne très bien.
Amitiés,
Olivier
En fait, le mieux serait d'avoir une recursion sur x uniquement, bon ça fait écrire un chouia plus de code, mais perd moins a l'execution.
Que veux tu dire par « recursion sur x uniquement » ?
Imagines ce qui se passe si modeline-format est ("---i--" "--") : on passe deux fois sur "--" ce qui est un peu ridicule et somme toute difficile à lire. Il vaut mieux, au lieu du my-replace-modeline-format interne, un my-modify-string qui ne s'occupe que de la chaine en question.
Voilà, j'espère que c'est plus clair ! Mais le code initial fonctionne très bien. Amitiés, Olivier
Olve
Les variables sont notées en capitales dans les explications, mais pas dans le code. Oui c'est bizarre et parfois je n'y sacrifie pas, mais c'est la convention, plutot que de les backquoter ce qui pourrait sembler bizarre pour le touriste :-)
Heu, je n'arrive pas à comprendre ce que tu veux dire, exactement.
Bon, ce n'est pas ma journée clarté on dirait :-) Voici du code extrait de subr.el (distribution standard) : -------------------------------------------------------------- (defun make-temp-file (prefix &optional dir-flag) "Create a temporary file. The returned file name (created by appending some random characters at the end of PREFIX, and expanding against `temporary-file-directory' if necessary, is guaranteed to point to a newly created empty file. You can then use `write-region' to write new data into the file.
If DIR-FLAG is non-nil, create a new empty directory instead of a file." (let (file) (while (condition-case () (progn (setq file (make-temp-name (expand-file-name prefix temporary-file-directory))) (if dir-flag (make-directory file) (write-region "" nil file nil 'silent nil 'excl)) nil) (file-already-exists t)) ;; the file was somehow created by someone else between ;; `make-temp-name' and `write-region', let's try again. nil) file)) --------------------------------------------------------------- Les variables sont prefix et dir-flag mais dans l'explication, elles sont notées PREFIX et DIR-FLAG. J'ai tendance à les noter 'prefix et 'dir-flag, c'est tout.
Amitiés, Olivier
Les variables sont notées en capitales dans les explications, mais pas
dans le code. Oui c'est bizarre et parfois je n'y sacrifie pas, mais
c'est la convention, plutot que de les backquoter ce qui pourrait sembler
bizarre pour le touriste :-)
Heu, je n'arrive pas à comprendre ce que tu veux dire, exactement.
Bon, ce n'est pas ma journée clarté on dirait :-)
Voici du code extrait de subr.el (distribution standard) :
--------------------------------------------------------------
(defun make-temp-file (prefix &optional dir-flag)
"Create a temporary file.
The returned file name (created by appending some random characters at the end
of PREFIX, and expanding against `temporary-file-directory' if necessary,
is guaranteed to point to a newly created empty file.
You can then use `write-region' to write new data into the file.
If DIR-FLAG is non-nil, create a new empty directory instead of a file."
(let (file)
(while (condition-case ()
(progn
(setq file
(make-temp-name
(expand-file-name prefix temporary-file-directory)))
(if dir-flag
(make-directory file)
(write-region "" nil file nil 'silent nil 'excl))
nil)
(file-already-exists t))
;; the file was somehow created by someone else between
;; `make-temp-name' and `write-region', let's try again.
nil)
file))
---------------------------------------------------------------
Les variables sont prefix et dir-flag mais dans l'explication, elles
sont notées PREFIX et DIR-FLAG. J'ai tendance à les noter 'prefix
et 'dir-flag, c'est tout.
Les variables sont notées en capitales dans les explications, mais pas dans le code. Oui c'est bizarre et parfois je n'y sacrifie pas, mais c'est la convention, plutot que de les backquoter ce qui pourrait sembler bizarre pour le touriste :-)
Heu, je n'arrive pas à comprendre ce que tu veux dire, exactement.
Bon, ce n'est pas ma journée clarté on dirait :-) Voici du code extrait de subr.el (distribution standard) : -------------------------------------------------------------- (defun make-temp-file (prefix &optional dir-flag) "Create a temporary file. The returned file name (created by appending some random characters at the end of PREFIX, and expanding against `temporary-file-directory' if necessary, is guaranteed to point to a newly created empty file. You can then use `write-region' to write new data into the file.
If DIR-FLAG is non-nil, create a new empty directory instead of a file." (let (file) (while (condition-case () (progn (setq file (make-temp-name (expand-file-name prefix temporary-file-directory))) (if dir-flag (make-directory file) (write-region "" nil file nil 'silent nil 'excl)) nil) (file-already-exists t)) ;; the file was somehow created by someone else between ;; `make-temp-name' and `write-region', let's try again. nil) file)) --------------------------------------------------------------- Les variables sont prefix et dir-flag mais dans l'explication, elles sont notées PREFIX et DIR-FLAG. J'ai tendance à les noter 'prefix et 'dir-flag, c'est tout.
Amitiés, Olivier
drkm
Olve writes:
drkm wrote:
Olve writes:
En fait, le mieux serait d'avoir une recursion sur x uniquement, bon ça fait écrire un chouia plus de code, mais perd moins a l'execution.
Que veux tu dire par « recursion sur x uniquement » ?
Imagines ce qui se passe si modeline-format est ("---i--" "--") : on passe deux fois sur "--" ce qui est un peu ridicule et somme toute difficile à lire. Il vaut mieux, au lieu du my-replace-modeline-format interne, un my-modify-string qui ne s'occupe que de la chaine en question.
Voilà, j'espère que c'est plus clair !
Heu ... C'est peut-être un problème dans mes connexions neuronalles ;-) Mais je ne comprend toujours pas ce que tu veux dire ...
Est-ce le fait que l'on récurse une dernière fois lorsqu'il n'y a plus de remplacement à faire (« on passe deux fois sur "--" ») ? Si c'est cela, je pense que c'est normal. Chaque étape consiste soit à modifier une partie de la chaîne, soit à dire qu'il n'y pas (plus) de modification à faire. Non ?
Mais peut-être ai-je tout simplement mal compris ?
--drkm, en recherche d'un stage : http://www.fgeorges.org/ipl/stage.html
Olve <Olve@there.wd> writes:
drkm wrote:
Olve <Olve@there.wd> writes:
En fait, le mieux serait d'avoir une recursion sur x uniquement, bon ça
fait écrire un chouia plus de code, mais perd moins a l'execution.
Que veux tu dire par « recursion sur x uniquement » ?
Imagines ce qui se passe si modeline-format est ("---i--" "--") : on
passe deux fois sur "--" ce qui est un peu ridicule et somme toute
difficile à lire. Il vaut mieux, au lieu du my-replace-modeline-format
interne, un my-modify-string qui ne s'occupe que de la chaine en question.
Voilà, j'espère que c'est plus clair !
Heu ... C'est peut-être un problème dans mes connexions neuronalles
;-) Mais je ne comprend toujours pas ce que tu veux dire ...
Est-ce le fait que l'on récurse une dernière fois lorsqu'il n'y a
plus de remplacement à faire (« on passe deux fois sur "--" ») ? Si
c'est cela, je pense que c'est normal. Chaque étape consiste soit à
modifier une partie de la chaîne, soit à dire qu'il n'y pas (plus) de
modification à faire. Non ?
Mais peut-être ai-je tout simplement mal compris ?
--drkm, en recherche d'un stage : http://www.fgeorges.org/ipl/stage.html
En fait, le mieux serait d'avoir une recursion sur x uniquement, bon ça fait écrire un chouia plus de code, mais perd moins a l'execution.
Que veux tu dire par « recursion sur x uniquement » ?
Imagines ce qui se passe si modeline-format est ("---i--" "--") : on passe deux fois sur "--" ce qui est un peu ridicule et somme toute difficile à lire. Il vaut mieux, au lieu du my-replace-modeline-format interne, un my-modify-string qui ne s'occupe que de la chaine en question.
Voilà, j'espère que c'est plus clair !
Heu ... C'est peut-être un problème dans mes connexions neuronalles ;-) Mais je ne comprend toujours pas ce que tu veux dire ...
Est-ce le fait que l'on récurse une dernière fois lorsqu'il n'y a plus de remplacement à faire (« on passe deux fois sur "--" ») ? Si c'est cela, je pense que c'est normal. Chaque étape consiste soit à modifier une partie de la chaîne, soit à dire qu'il n'y pas (plus) de modification à faire. Non ?
Mais peut-être ai-je tout simplement mal compris ?
--drkm, en recherche d'un stage : http://www.fgeorges.org/ipl/stage.html
drkm
Olve writes:
Les variables sont notées en capitales dans les explications, mais pas dans le code. Oui c'est bizarre et parfois je n'y sacrifie pas, mais c'est la convention, plutot que de les backquoter ce qui pourrait sembler bizarre pour le touriste :-)
Heu, je n'arrive pas à comprendre ce que tu veux dire, exactement.
Bon, ce n'est pas ma journée clarté on dirait :-)
Ni ma journée compréhension ;-)
[...]
Les variables sont prefix et dir-flag mais dans l'explication, elles sont notées PREFIX et DIR-FLAG. J'ai tendance à les noter 'prefix et 'dir-flag, c'est tout.
Ok. J'ai moi-même une notation un peu personnelle. En fait, dans les docstrings de GNU Emacs, il me semble que les attributs sont écrits en majuscules, et les variables et fonctions entre ` et '. J'utilise en fait toujours ` et ', tout en mettant également les attributs en majuscules et en ajoutant () pour différencier les fonctions des variables :
· `UN-ATTRIBUT' ;
· `une-variable-globale' ;
· `une-fonction()'.
Je pense que je devrais éviter ces petites différences de notation sur Usenet, mais la force de l'habitude étant ce qu'elle est ...
--drkm, en recherche d'un stage : http://www.fgeorges.org/ipl/stage.html
Olve <Olve@there.wd> writes:
Les variables sont notées en capitales dans les explications, mais pas
dans le code. Oui c'est bizarre et parfois je n'y sacrifie pas, mais
c'est la convention, plutot que de les backquoter ce qui pourrait sembler
bizarre pour le touriste :-)
Heu, je n'arrive pas à comprendre ce que tu veux dire, exactement.
Bon, ce n'est pas ma journée clarté on dirait :-)
Ni ma journée compréhension ;-)
[...]
Les variables sont prefix et dir-flag mais dans l'explication, elles
sont notées PREFIX et DIR-FLAG. J'ai tendance à les noter 'prefix
et 'dir-flag, c'est tout.
Ok. J'ai moi-même une notation un peu personnelle. En fait, dans
les docstrings de GNU Emacs, il me semble que les attributs sont
écrits en majuscules, et les variables et fonctions entre ` et '.
J'utilise en fait toujours ` et ', tout en mettant également les
attributs en majuscules et en ajoutant () pour différencier les
fonctions des variables :
· `UN-ATTRIBUT' ;
· `une-variable-globale' ;
· `une-fonction()'.
Je pense que je devrais éviter ces petites différences de notation
sur Usenet, mais la force de l'habitude étant ce qu'elle est ...
--drkm, en recherche d'un stage : http://www.fgeorges.org/ipl/stage.html
Les variables sont notées en capitales dans les explications, mais pas dans le code. Oui c'est bizarre et parfois je n'y sacrifie pas, mais c'est la convention, plutot que de les backquoter ce qui pourrait sembler bizarre pour le touriste :-)
Heu, je n'arrive pas à comprendre ce que tu veux dire, exactement.
Bon, ce n'est pas ma journée clarté on dirait :-)
Ni ma journée compréhension ;-)
[...]
Les variables sont prefix et dir-flag mais dans l'explication, elles sont notées PREFIX et DIR-FLAG. J'ai tendance à les noter 'prefix et 'dir-flag, c'est tout.
Ok. J'ai moi-même une notation un peu personnelle. En fait, dans les docstrings de GNU Emacs, il me semble que les attributs sont écrits en majuscules, et les variables et fonctions entre ` et '. J'utilise en fait toujours ` et ', tout en mettant également les attributs en majuscules et en ajoutant () pour différencier les fonctions des variables :
· `UN-ATTRIBUT' ;
· `une-variable-globale' ;
· `une-fonction()'.
Je pense que je devrais éviter ces petites différences de notation sur Usenet, mais la force de l'habitude étant ce qu'elle est ...
--drkm, en recherche d'un stage : http://www.fgeorges.org/ipl/stage.html
drkm
Jérémy JUST writes:
On Mon, 09 Aug 2004 18:10:37 +0200 drkm wrote:
Que pensez-vous de : (defun my-replace-modeline-format (x &optional start) .....
Ben... Je vais l'imprimer pour le lire dans le RER... C'est marrant cette idée d'appliquer des regexps récursivement. J'imagine que c'est très lispien. En Perl, on aurait fait ça itérativement (d'ailleurs, l'opérateur de regexp s'en charge, avec la bonne option).
En tant que langage fonctionel, le Lisp utilise énormément la récursion. Il serait possible d'utiliser ici une boucle, mais la récursion est ce qu'il y a de plus « naturel », AMHA. Je suis par contre étonné qu'il n'existe pas une fonction de remplacement global, comme le s///g de Perl (celui que tu évoques, si je ne m'abuse).
--drkm, en recherche d'un stage : http://www.fgeorges.org/ipl/stage.html
Jérémy JUST <jeremy_just@netcourrier.com> writes:
On Mon, 09 Aug 2004 18:10:37 +0200
drkm <usenet.fcaemacs@fgeorges.org> wrote:
Que pensez-vous de :
(defun my-replace-modeline-format (x &optional start) .....
Ben... Je vais l'imprimer pour le lire dans le RER...
C'est marrant cette idée d'appliquer des regexps récursivement.
J'imagine que c'est très lispien. En Perl, on aurait fait ça
itérativement (d'ailleurs, l'opérateur de regexp s'en charge, avec la
bonne option).
En tant que langage fonctionel, le Lisp utilise énormément la
récursion. Il serait possible d'utiliser ici une boucle, mais la
récursion est ce qu'il y a de plus « naturel », AMHA. Je suis par
contre étonné qu'il n'existe pas une fonction de remplacement global,
comme le s///g de Perl (celui que tu évoques, si je ne m'abuse).
--drkm, en recherche d'un stage : http://www.fgeorges.org/ipl/stage.html
Que pensez-vous de : (defun my-replace-modeline-format (x &optional start) .....
Ben... Je vais l'imprimer pour le lire dans le RER... C'est marrant cette idée d'appliquer des regexps récursivement. J'imagine que c'est très lispien. En Perl, on aurait fait ça itérativement (d'ailleurs, l'opérateur de regexp s'en charge, avec la bonne option).
En tant que langage fonctionel, le Lisp utilise énormément la récursion. Il serait possible d'utiliser ici une boucle, mais la récursion est ce qu'il y a de plus « naturel », AMHA. Je suis par contre étonné qu'il n'existe pas une fonction de remplacement global, comme le s///g de Perl (celui que tu évoques, si je ne m'abuse).
--drkm, en recherche d'un stage : http://www.fgeorges.org/ipl/stage.html