Vale lembrar alguns aspectos de como o MCG processa dados.
A maioria dos dados que flui em um gráfico não pode ser alterada. Em outras palavras, ele são imutáveis. Algumas operações podem parecer insinuar que elas alteram os dados, como o operador Matriz
Anexar, mas o que está acontecendo do ponto de vista de um gráfico é que o nó gera uma nova cópia do objeto.
Em alguns casos, o compilador pode executar a otimização para evitar a criação de cópias de dados quando eles não são necessários, desde que a propriedade de transparência referencial seja mantida.
Muitos operadores no MCG têm transparência referencial. Isso quer dizer que, se forem atribuídas as mesmas entradas, elas gerarão sempre as mesmas saídas e não terão nenhum outro efeito observável.
Um dos aspectos interessantes (e úteis) do MCG é que ela é uma linguagem de programação visual totalmente funcional. Isso significa que os nós podem receber funções como entradas e retornar funções como saídas. As funções podem ser criadas dinamicamente usando operadores, por exemplo, Criar e Vincular, e também podem ser armazenadas em matrizes.
Qualquer subgráfico pode ser tratado como uma função conectando-se a porta de saída da função de um nó a outro nó que aceita funções como tipo de entrada. Quando um nó é conectado como uma função, os conectores desconectados de todos os nós em seu gráfico constituem os argumentos da função.
O MCG não garante que as entradas do operador serão avaliadas em uma ordem específica, com exceção do caso de operadores de fluxo de controle, por exemplo, o operador Se ou o operador Sequência. É possível em alguns casos que uma entrada seja pré-avaliada e armazenada em cache pelo compilador ou que duas entradas sejam avaliadas paralelamente.