Llegamos a ustedes gracias a:



Noticias

Microsoft mapea upgrade del lenguaje F#

F # 4.1 incluirá struct tuples, mensajes de error mejorados y soporte para .Net Core.

[16/08/2016] Los planes de Microsoft para el "primer lenguaje funcional F# incluyen un upgrade para más adelante en este año que añade capacidades que van desde las struct tuples hasta los mensajes de error mejorados. También se trabaja en el soporte para .Net Core, una versión multiplataforma y de código abierto del modelo de programación .Net.

F# 4.1 se centra en la flexibilidad y las mejoras incrementales, afirmó el equipo de Microsoft Visual FSharp. Cuenta con struct tuples e interoperabilidad con tuples de Visual C# 7 y Visual Basic.

Los tuples son una estructura de datos que puede almacenar una secuencia finita de datos de tamaños fijos y puede devolver varios valores desde un método. Los struct tuples mejoran el rendimiento cuando hay muchos tuples asignados en un corto período de tiempo.

"El tipo de tuple en F# es una manera clave para empaquetar valores juntos de varias formas a nivel de lenguaje, afirmó el equipo. "Los beneficios que esto trae, como agrupar los valores como una conveniencia ad-hoc, o empaquetar información con el resultado de una operación, también están apareciendo bajo la forma de struct tuples en C# y Visual Basic.

La versión 4.1 también contará con una capacidad de registros de la estructura. "En F# 4.1, un tipo de registro se puede representar como una estructura con el atributo [<Struct>]. Esto permite que los registros ahora compartan las mismas características de rendimiento como que los structs, sin otros cambios necesarios en la definición del tipo.

También se han habilitado las uniones de structs de caso único. "Los tipos de uniones de caso único usualmente son utilizadas para envolver un tipo primitivo de modelamiento de dominio, afirmó el equipo. "Esto le permite a usted continuar haciéndolo, pero sin la sobrecarga de asignar un nuevo tipo al conjunto.

Los mensajes de error serán mejorados en F# 4.1, mostrando mejoras en las reparaciones sugeridas con información que ya se encuentra contenida en el compilador, y también se planea una capacidad de palabra clave fija. El .Net Intermediate Languaje permite a un desarrollador localizar un local de tipo puntero en el stack; C# soporta esto con la declaración "fija evitando la recolección de elementos no utilizados dentro del alcance de esa declaración. "Este soporte llega a F# 4.1 en la forma de la palabra clave 'fija' utilizada en conjunto con un enlace 'use', afirmó el equipo. Mientras tanto, el subrayado en la versión 4.1 de los literales numéricos permitirá una agrupación de los dígitos en unidades lógicas para facilitar la lectura.

F# 4.1 permitirá una colección de tipos y módulos dentro de un ámbito único en un solo archivo que será mutuamente referencial, e incluirá un sufijo de "módulo implícito en los módulos que comparten el mismo nombre como un tipo. "Con esta función, si un módulo comparte el mismo nombre que un tipo dentro del mismo grupo de declaración - es decir, están en el mismo espacio de nombres, o en el mismo grupo de declaraciones que componen un módulo - tendrán el sufijo 'Módulo' anexado a él en el tiempo de compilación.

Visual F# Tools para F# 4.1 soportarán la edición y compilación de proyectos .Net Core y .Net Framework. "Nuestro compilador y herramientas de scripting para F# 4.1 serán la primera versión que ofrezca soporte para .Net Core, afirmó el equipo. Las herramientas previstas incluyen una cadena de herramientas de compilación de código abierto multiplataforma para .Net Framework y .Net Core para usar con Linux, MacOS X y Windows.

Las herramientas del IDE Visual F# pasarán por un upgrade para su uso con la próxima versión de Visual Studio, y el apoyo de F# 4.1 se incluirá en las herramientas Xamarin Studio y Visual Studio de Microsoft. El upgrade estará soportado en el transpiler F#-to-ECMAScript F# y en Roslyn Workspaces, para el análisis de código y refactorización en la plataforma del compilador Roslyn.

Paul Krill, InfoWorld (EE.UU.)