Lanzamento do entorno de desenvolvemento PascalABC.NET 3.8

Está dispoñible o lanzamento do sistema de programación PascalABC.NET 3.8, que ofrece unha edición da linguaxe de programación Pascal con soporte para a xeración de código para a plataforma .NET, a posibilidade de usar bibliotecas .NET e funcións adicionais como clases xenéricas, interfaces , sobrecarga de operadores, expresións λ, excepcións, recollida de lixo, métodos de extensión, clases sen nome e autoclases. O proxecto céntrase principalmente en aplicacións en educación e investigación. O paquete tamén inclúe un ambiente de desenvolvemento con suxestións de código, formato automático, un depurador, un deseñador de formularios e mostras de código para principiantes. O código do proxecto distribúese baixo a licenza LGPLv3. Pódese construír en Linux (baseado en mono) e Windows.

Cambios na nova versión:

  • Engadido soporte para cortar matrices multidimensionais begin var m := MatrByRow(||1,2,3,4|,|5,6,7,8|,|9,10,11,12||); Println(m[:,:]); // [[1,2,3,4],[5,6,7,8],[9,10,11,12]] Println(m[::1,::1]); // [[1,2,3,4],[5,6,7,8],[9,10,11,12]] Println(m[1:3,1:4]); // [[6,7,8],[10,11,12]] Println(m[::2,::3]); // [[1,4],[9,12]] Println(m[::-2,::-1]); // [[12,11,10,9],[4,3,2,1]] Println(m[^2::-1,^2::-1]); // [[7,6,5],[3,2,1]] Println(m[:^1,:^1]); // [[1,2,3],[5,6,7]] Println(m[1,:]); // [5,6,7,8] Println(m[^1,:]); // [9,10,11,12] Println(m[:,^1]); // [4,8,12] fin.
  • Engadíronse expresións lambda con parámetros de desempaquetado que son tuplas ou secuencias. Agora é posible nomear elementos de tuplas directamente en parámetros lambda. Para descomprimir un parámetro de tupla t nas variables x e y, use a notación \\(x,y). Este é un parámetro, en oposición á notación (x,y), que representa dous parámetros: begin var s := Seq(('Umnova',16),('Ivanov',23), ('Popova',17 ),('Kozlov', 24)); Println('Adultos:'); s.Onde(\\(nome,idade) -> idade >= 18).Println; Println('Ordenar por apelido:'); s.OrderBy(\\(nome,idade) -> nome).Println; fin.
  • Permítese a construción "a como matriz de T", que antes estaba prohibida a nivel gramatical. begin var ob: obxecto := novo enteiro[2,3]; var a := ob como matriz [,] de número enteiro; fin.

Fonte: opennet.ru

Engadir un comentario