¿Es una lista (potencialmente) divisible por otra?

Puede usar extensiones como en los campos. Cuando escribí nJexl, en realidad tenía una disposición de división de listas. ¿Por qué? Porque hay una multiplicación que es posible:

[matemáticas] A \ veces B: = \ {(a, b) | a \ en A, b \ en B \} [/ matemáticas]

Así:

  (zoomba) a = [0,1]
 @ [0,1] // ZArray
 (zoomba) b = [verdadero, falso]
 @ [verdadero, falso] // ZArray
 (zoomba) c = a * b
 [@ [0, verdadero], @ [0, falso], @ [1, verdadero], @ [1, falso]] // ZList

Eso es lo que hace la operación join () en sql estándar con predicado siempre verdadero. Además, dado que ahora tenemos un producto cartesiano: Wikipedia, ‘c’ puede, y ahora debe ser divisible por a o b. Por lo tanto, debería ser bastante posible:

  x = c / a 

aunque de verdad:

  (zoomba) c / a
 zoomba.lang.core.types.ZException $ ArithmeticOperation: Operación aritmética no válida [/]: en la línea 1, cols 5: 5 -> (¡No se puede hacer una división sobre Collection!) // ArithmeticOperation
 (zoomba)

¿Porque? Porque es computacionalmente ridículamente difícil. Entonces, aunque formalmente es posible tratar las listas como un Campo (matemáticas) – Wikipedia, generalmente no hacemos eso.

Otra razón por la que no creemos que List tenga una operación de división, es que una lista como [a, b] no es posible crear usando un producto cartesiano. En ese sentido, se juegan como números naturales.

Sin embargo, para Dictionary, ZoomBA admite la operación de división ‘/’. Observar:

  (zoomba) d = {1: 42,2: 42,3: 100}
 {1 = 42, 2 = 42, 3 = 100} // ZMap
 (zoomba) d / 42
 {1,2} // ZSet
 (zoomba)

¿Porque? Porque puedes imaginar que el mismo diccionario es:

[matemáticas] (\ {1, 2 \} \ veces \ {42 \}) \ cup (\ {3 \} \ veces \ {100 \}) [/ matemáticas]

Es obvio qué operación hace qué y como el lado derecho no puede * dividirse * por 42, el resultado es solo en el lado izquierdo.

Esa es la matemática detrás de la decisión, también resuelve el problema mundano: dado un valor, encuentre todas las claves que tengan ese valor.