Raramente se usa en lenguajes de programación reales, pero en psuedocode el operador: = es el operador de asignación; más específicamente, asigna el valor del elemento a la derecha del símbolo: = a la variable a la izquierda. Esto generalmente también devuelve el valor a la derecha, lo que permite el encadenamiento evaluado de derecha a izquierda, por lo que la expresión X: = A: = 2 + 7 evalúa A: = 2 + 7 primero (deduciendo que 2 + 7 = 9, y luego asignando el valor 9 a la variable A). Luego evalúa el siguiente eslabón de la cadena, X: = A (recuerde, simplemente configuramos esto en 9), por lo que ahora X = A = 9 y listo.
Para el ejemplo dado en los detalles de la pregunta, digamos que i = 7:
Luego, para evaluar la línea LOWLINK (v): = NUMBER (v): = i: = i + 1
- ¿Qué tan difícil fue crear e implementar el algoritmo de clasificación de página inicial de los primeros Google?
- Insertar un elemento en un montón toma O (log n). ¿Aún si insertamos n elementos en el montón, resulta ser O (n)?
- ¿Cuál es el enfoque de IA para resolver el Cubo de Rubik aleatoriamente barajado?
- ¿Cuál es la mejor estructura y algoritmo de datos para encontrar un valor máximo dentro de un subconjunto de una población de datos que satisfaga alguna condición de rango?
- ¿Cuáles son algunos diseños de clase mínima para el diseño de elevadores para la construcción de m pisos?
Primero calculamos el valor más a la derecha (i + 1, que es igual a 8).
LOWLINK (v): = NUMBER (v): = i: = 8
Luego evaluamos la expresión (i: = 8), que asigna el valor 8 a la variable i, y devuelve i (que es lo mismo que devolver 8, ya que son iguales)
LOWLINK (v): = NUMBER (v): = i
Luego establecemos NUMBER (v) para que sea igual al valor de i (8), y obtenemos
LOWLINK (v): NÚMERO (v)
Y finalmente configuramos LOWLINK (v) para que sea igual a NUMBER (v), que es igual a 8, y hemos evaluado completamente la expresión.
LOWLINK (v): = NUMBER (v): = i: = i + 1 es una forma de una línea de:
……
i = i + 1;
NÚMERO (v) = i;
LOWLINK (v) = NÚMERO (v);
… ..
Es lo mismo, encadenados en una sola línea. Personalmente, probablemente usaría la versión expandida en código real porque permite una mejor legibilidad (y, posiblemente más importante, cuando está depurando el código línea por línea, es más fácil saber qué asignación está causando problemas).