Programmeringssystemet PascalABC.NET 3.8 är nu tillgängligt. Det erbjuder en utgåva av programmeringsspråket Pascal med stöd för kodgenerering för .NET-plattformen, möjligheten att använda .NET-bibliotek och ytterligare funktioner som generiska klasser, gränssnitt, operatoröverbelastning, λ-uttryck, undantag, sophämtning, utökningsmetoder, anonyma klasser och autoklasser. Projektet är främst inriktat på utbildning och forskning. Paketet innehåller också en utvecklingsmiljö med koddips, autoformatering, en felsökare, en formulärdesigner och kodexempel för nybörjare. Projektkoden distribueras under LGPLv3-licensen. Byggande är möjligt i Linux (baserat på Mono) och Windows.
Ändringar i den nya versionen:
- Tillagt stöd för att skära upp flerdimensionella arrayer start 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] slut.
- Lambda-uttryck med uppackningsparametrar som är tupler eller sekvenser har lagts till. Det är nu möjligt att namnge element av tuplar direkt i lambdaparametrar. För att packa upp en tuppelparameter t i variablerna x och y, använd notationen \\(x,y). Detta är en parameter, i motsats till notationen (x,y), som representerar två parametrar: begin var s := Seq(('Umnova',16),('Ivanov',23), ('Popova',17 ),('Kozlov', 24)); Println('Vuxna:'); s.Where(\\(namn,ålder) -> ålder >= 18).Println; Println('Sortera efter efternamn:'); s.OrderBy(\\(namn,ålder) -> namn).Println; slutet.
- Konstruktionen "a som array av T" är tillåten, vilket tidigare var förbjudet på grammatiknivå. begin var ob: objekt := nytt heltal[2,3]; var a := ob som array [,] av heltal; slutet.
Källa: opennet.ru
