Wolfram Language

Cadre de canaux

Traitez tout type de données

Les messages qui peuvent être représentés au format JSON (des chaînes, des nombres, True, False ou Null), ou encore des listes, des règles ou des associations contenant ces éléments, sont donnés littéralement.

In[1]:=
Click for copyable input
listener = ChannelListen["example"]
Out[1]=
In[2]:=
Click for copyable input
(ChannelSend["example", #]) & /@ {"string", 100, True, {1, 2, 3}, "a" -> "b", {"c" -> 1}, <|"d" -> True|>};
In[3]:=
Click for copyable input
listener["Message", All]
Out[3]=

Les messages contenant le code sont enveloppés en toute sécurité dans HoldComplete, vous donnant l'occasion de les examiner avant de les évaluer.

In[4]:=
Click for copyable input
ChannelSend["example", Unevaluated[Print["hello"]]];
In[5]:=
Click for copyable input
listener["Message"]
Out[5]=
In[6]:=
Click for copyable input
listener["Message"] // ReleaseHold

Créez un canal qui envoie un notebook comprimé et ouvrez le notebook reçu dans une nouvelle fenêtre.

In[7]:=
Click for copyable input
CreateChannel["nb", ChannelPreSendFunction -> (Compress[#1] &), HandlerFunctions -> Association[ "MessageReceived" -> (CreateWindow[Uncompress[#Message]] &)]]
Out[7]=

Commencez à écouter sur le canal.

In[8]:=
Click for copyable input
listener = ChannelListen["nb"]
Out[8]=

Créez un notebook et envoyez-le au canal.

In[9]:=
Click for copyable input
nb = DocumentNotebook[{TextCell["My Report", "Section"], TextCell["Lorem ipsum dolor sit amet:", "Text"], ExpressionCell[ ContourPlot[x + Sin[x^2 + y^2], {x, -4, 4}, {y, -4, 4}, Contours -> 9, ContourShading -> ColorData[35, "ColorList"]]]}, StyleDefinitions -> FrontEnd`FileName[{"Article"}, "Preprint.nb"], WindowTitle -> "My Report", Background -> LightOrange]
Out[9]=
In[10]:=
Click for copyable input
ChannelSend["nb", nb]
Out[10]=

Le notebook reçu.

Out[11]=

Exemples connexes

de en es ja ko pt-br ru zh