domingo, 27 de diciembre de 2009

JavaFX Script


JavaFX Script es un lenguaje scripting desarrollado por Sun Microsystems, que forma parte de la familia de tecnologías JavaFX. JavaFX permite crear aplicaciones web para escritorio, navegadores, dispositivos móviles, etc.

JavaFX Script es un lenguaje de scripting altamente productivo que permite a los desarrolladores de contenido crear multimedia y contenido para plataformas en ambientes java. JavaFX Script es un lenguaje de programacion declarativo, tipado estaticamente. Tiene funciones de primer clase, sintaxis declarativa, comprension de listas y evaluacion incremental dependiente. Puede hacer llamadas directas a cualquier API de Java que exista en la plataforma

Veamos unos ejemplos de este lenguaje:
Strings:

var nombre = 'Pepe';
var s = "Hola {nombre}"; // s = 'Hola Pepe'

var respuesta = true;
var s = "La respuesta es {if respuesta then "Si" else "No"}";
// s = 'La respuesta es Si'

Arreglos:
var unoACien = [1..100];
var tamanio = sizeof unoACien; // tamanio == 100
var porTres = [1*3, 2*3 .. 10*3]; // [3,6,9,12,15,18,21,24,27,30]
tamanio = sizeof porCien; // tamanio == 10

var nums = [1,2,3,4];
var numsMayoreQueDos = nums[n|n > 2]; // resulta en [3,4]
var numsMenosLosDosPrimeros = nums[n|indexof n > 1];
// resulta en [3,4]

var x = [1,2,3];
insert 12 into x; // resulta en [1,2,3,12]
insert 10 as first into x; // resulta en [10,1,2,3,12]
insert [99,100] as last into x; // resulta en [10,1,2,3,12,99,100]

var y = [1,2,3];
insert 10 after y[n|n == 3]; // resulta en [1,2,3,10]
insert 12 before y[1]; // resulta en [1,12,2,3,10]
insert 13 after y[n|n == 2];
// resulta en [1, 12, 2, 13, 3, 10];
delete x[n|n == 12]; // resulta en [1,2,3,10]
delete x[n|n >= 3]; // resulta en [1,2]

var a:Integer* = select n*n from n in [1..10];
// resulta en [1,4,9,16,25,36,49,64,81,100]

var a:Integer* = select n*m from n in [1..4], m in [100,200] where (n%2 == 0);
// resulta en [200, 400, 400, 800]

Formateado:
100.896 format as <<%f>>; // resulta en '100.896000'
31.intValue() format as <<%02X>>; // resulta en '1F'
var d = new Date();
d format as <>; // resulta en '2005-10-31T08:04:31.323-0800'
0.00123 format as <<00.###e0>>; // resulta en '12.3E-4'