Je voudrais être en mesure de faire s'Graph
et c'Graph
pour faire référence à System'Graph
et Combinatorica'Graph
(et d'autres fonctions en conflit avec Combinatorica) est-il un moyen de faire cela?Créer un alias pour les chemins de contexte?
Après l'idée de Simon, ce qui suit semble fonctionner
{Set @@ {ToExpression["c" <> Last[StringSplit[#, "`"]]],
ToExpression[#]}} & /@ Names["Combinatorica`*"];
{Set @@ {ToExpression["s" <> Last[StringSplit[#, "`"]]],
ToExpression[#]}} & /@ Names["System`*"];
maintenant cCompleteGraph[5]
et sCompleteGraph[5]
retour Combinatorica
et System
graphiques respectivement
Mise à jour le 8 janvier Pour référence ultérieure, c'est la méthode que je fini en utilisant pour utiliser GraphUtilities
, Combinatorica
et fonctionnalité de graphique intégré ensemble. Il résout les conflits en remappant toutes les fonctions de Combinatorica comme Graph
-cGraph
et change $Post
pour enlever GraphUtilities et Combinatorica de ContextPath sur chaque évaluation, nécessaire parce que GraphUtilities'ToCombinatoricaGraph
ajoute Combinatorica
-$ContextPath
à chaque appel.
Pour récapituler, exécutez le code ci-dessous au début de chaque session. Combinatorica func est maintenant cfunc
, GraphUtilities func est GraphUtilities'func
et intégré Func est juste func
Needs["Combinatorica`"];
combNames = Names["Combinatorica`*"];
{Set @@ {ToExpression["c" <> Last[StringSplit[#, "`"]]],
ToExpression[#]}} & /@ Names["Combinatorica`*"];
Needs["GraphUtilities`"];
$ContextPath = DeleteCases[$ContextPath, "Combinatorica`"];
$Post = ($ContextPath =
DeleteCases[$ContextPath,
"Combinatorica`" | "GraphUtilities`"]; #) &;
De combien de symboles différents avez-vous besoin? Serait-il possible de simplement faire cGraph = Combinatorica'Graph (et garder Combinatorica de $ ContextPath)? – Janus
Est-ce une chose v8, d'ailleurs? Sur mon système v7 'Intersection @@ (Noms [# <>" \ '*"] &/@ {"Combinatorica", "Système"}) 'renvoie une liste vide. – Janus
Yup, la version 8, il y a maintenant deux types d'objets Graph, semble que WRI est en passe de remplacer les fonctionnalités de Combinatorica par des built-ins –