/*fonctions utiles par iri, mars 2004 */ /* plugin C3D : term3d, parties C et S */ /* Copyright (c) 2004 iri. Ce fichier fait partie du plugin "Term3d". Term3d est un programme libre; vous pouvez le redistribuer et/ou le modifier selon les termes de la GNU General Public License (Licence Publique Générale GNU) telle qu'elle a été publiée par la Free Software Foundation : soit la version 2 de la licence, soit (comme vous le souhaitez) toute version ultérieure. Term3d est distribué dans l'espoir qu'il sera utile, mais SANS LA MOINDRE GARANTIE; pas même la garantie implicite de COMMERCIABILITE ou d'ADEQUATION A UN BUT PARTICULIER. Voir la GNU General Public License pour plus de détails. Vous devriez avoir reçu une copie de la GNU General Public License en même temps que ce programme (fichier "COPYING", version 2 de la GNU General Public License); sinon, merci d'écrire à la Free Software Foundation, Inc, 59 Temple Place, Suite 330, Boston, MA02111-1307 USA. De plus, Term3d peut être intégré à toute distribution de tout ou partie du SCS (Set Construction Set) et basé sur la technologie Scol, à l'exclusion de toute distribution complète ou partielle payante (autre que le prix d'envoi ou d'édition du support de la distribution). Vous devez respecter la GNU General Public License à tous les égards. Si vous modifiez ce fichier, vous pouvez étendre cette exception à votre version du fichier, mais n'êtes pas obligé de le faire. Si vous ne souhaitez pas le faire, supprimez cette déclaration l'exception de votre version. */ /* list -> [[S I] r1] old -> [S I] new -> [S I] not used <- list */ fun myreplace_in_list (list, old, new)= if list == nil then nil else let list -> [first next] in let first -> [a b] in let old -> [c d] in if !strcmp a c then new::next else first::myreplace_in_list next old new;; fun replace_nth_in_list (list, n, x)= if n < 0 then list else let list -> [first next] in if n==0 then x::next else first::replace_nth_in_list next n-1 x;; fun remove_nth_from_list (list, n)= if n < 0 then list else let list -> [first next] in if n==0 then next else first::remove_nth_from_list next n-1;; fun remove_from_clis(l, p)= if l == nil then l else let l -> [[login col] suite] in if !strcmp login p then suite else [login col]::remove_from_clis suite p;;