Programando en Ceylon y PSeInt

Existe una herramienta para aprender a programar llamada PSeInt, en esta ocasión vamos a realizar ejemplos de programación básica y comparando esos códigos en Ceylon.

Ejemplos

1. Se requiere obtener la talla de una persona sabiendo que su peso es de 54.5 kg y su índice de masa corporal es de 22.1.
Fórmulas:
imc=peso/(talla*talla)
peso=(talla*talla)*imc
talla=sqrt(peso/imc)

Usando PSeInt escribimos:

Ahora en Ceylon:
obtenerTalla.ceylon

 

Compilamos y ejecutamos:

2. Obtener un bono de ventas, teniendo en cuenta que el objetivo (de ventas) debe ser igual o mayor a 300.

Y obtenemos:

En Ceylon:

obtenerBono.ceylon

 

Compilamos y ejecutamos:

3. Un menú para elegir una película. Si es mayor de edad permitirá mostrar el menú.

Código:
 

Obtenemos:

Ahora en Ceylon:

 
Compilamos y ejecutamos:

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.
Imagen de ezamudio

Ceylon

Hola, me da gusto siempre ver que haya posts aportando contenido y no solamente haciendo preguntas... sobre todo si el contenido incluye algo de Ceylon.

Solamente hay algo que me saltó a la vista en tu código: anotaste todo como variable, pero no modificas los valores. Y a todo le pusiste tipo, lo cual pues no está mal, hace el código más legible, pero puedes usar la inferencia de tipos (que solamente funciona a nivel local, de modo que no se complica mucho la lectura). Recuerda que es preferible tener inmutabilidad, a menos que necesites que algo sea mutable. Entonces por ejemplo tu primer ejemplo puede quedar así:

 

El segundo quedaría así:

 

El último ejemplo está interesante porque hay muchas maneras de resolverlo y sirve para mostrar distintos estilos y práticas recomendables. En este caso sí me gustaría mostrar una versión bastante distinta, haciendo enfoque en la separación de responsabilidades:

 

Todavía se podría separar más, encapsulando el código que captura la entrada del usuario y devuelve la opción elegida.

Imagen de Sr. Negativo

Re:Ceylon

El código del menú que escribiste es más legible y se entiende mejor, gracias.