Cuando uso Manipular que puedo hacer:definir el control como variable en Mathematica
Manipulate[x, {u, 1, 10}]
En realidad mis controles son muchos y complicados, por lo que yo preferiría tener su definición de la expresión Manipular, al igual que :
control = {u, 1, 10}
Manipulate[x, control]
Pero eso da lugar a un error:
Manipulate argument control does not have the correct form for a \
variable specification.
¿Por qué no funciona de esa manera?
El ejemplo que nos ha facilitado, y lo que veo en la mayoría de las respuestas es que la complejidad del código es no reducido en absoluto. Algunas de las respuestas crean un código muy complejo que utiliza significativamente más caracteres, un montón de construcciones de alcance extra, etc. Siento que solo estoy mejorando el _layout_ de tu código (cada control en su propia línea, agrupando visualmente los controles relacionados, etc.) en la mayoría de los casos son suficientes. –
A través de las respuestas, entiendo mejor lo que está sucediendo, pero tiene toda la razón: ninguna de las construcciones hace que el código sea realmente más simple. Lo que me vuelve loco es la enloquecida profundidad de anidamiento de los corchetes en mi código. Probablemente esa sea la forma de hacerlo de Lisp, pero ¿no hay una manera de hacer que mis programas sean más lineales? –
@Sjoerd, si aparece un fragmento de código en un lugar, entonces estoy de acuerdo con usted. Hacer esto generalmente tiene sentido si a) estás usando el código en más de un lugar, o b) el código completo se está haciendo demasiado largo para modificarlo fácilmente. Por ejemplo, tengo una computadora portátil con un código 'Manipulate' que no aparece en la pantalla de 13 pulgadas de mi macbook. Tengo que usar un truco como este, o tratar de cargar todo en mi cabeza cada vez que necesite modificarlo.Como ya tengo que pensar mucho sobre el problema que realmente estoy resolviendo, preferiría reducir la complejidad del código agregando algunos caracteres. – acl