[pyar] Peligrosidad de un lambda

QliX=D! [aka EHB] qlixed en gmail.com
Vie Oct 8 00:25:44 ART 2010


2010/10/7 Hystrix <ego en hystrix.com.ar>:
> 2010/10/7 Claudio Freire <klaussfreire en gmail.com>:
>> La pregunta original, leela, estaba libre de contexto. Como los parsers.
>
> Agrego un poco de contexto porque aunque la discusion se volvio
> interesante, sigo con la duda original.
> La intencion era permitir que el usuario pudiera tener una funcion
> programable, es decir, que pueda definir la formula que se usa para
> calcular el resultado de una operacion.
> Esto surge de una simulacion muy basica que saque de un libro:
> Hay un club con 100 miembros, cada uno de una casta (0-9), estos
> miembros se juntan de a pares, se aplica una formula que recibe como
> entrada las castas de cada uno y el resultado es la casta nueva del
> primero del par. La idea era poder modificar la formula que calcula la
> casta nueva sin tener que editar el codigo del programa.
> Por eso se me ocurrio, muy ingenuamente, usar codigo metido en un
> lambda. Obviamente eso no sirve, no al menos como me hubiera gustado.
> Entonces, se puede darle al usuario una forma de modificar cierta
> parte del programa sin exponerse a cosas obvias?
>

El soft mas similar de uso comun que podes encontrar que hace eso
mismo es una planilla de calculo.
Las funciones las expone de manera controlada, permitiendo hacer
algunas decisiones complejas y todo.
creo que es la mejor forma de encarar el team.
En tu caso, me parece mas apropiado tal vez el hacer un pequeño
lenguaje que embeba las funciones que necesitas y las puedas traducir
a bloques de codigo python, por ejemplo, podrias hacer usar pyparser,
es una buena libreria y tiene MUCHOS ejemplos, Muchos, uno de los
simples y copados para arrancar a ver es este:

http://pyparsing.wikispaces.com/file/view/SimpleCalc.py

Si sabes algo de bnf y otras yerbas podes saltar  a esto:

http://pyparsing.wikispaces.com/file/view/ebnf.py

Definir la ebnf de tu lenguaje sin muchas vueltas y "emitir" codigo
python de forma mas segura.

Saludos.
EHB



More information about the pyar mailing list