Ukukhishwa kwe-PascalABC.NET 3.8 indawo yokuthuthukisa

Ukukhululwa kohlelo lwe-PascalABC.NET 3.8 luyatholakala, luhlinzeka ngohlelo lolimi lokuhlela lwe-Pascal olusekelwa ukwenziwa kwekhodi yesikhulumi se-.NET, ikhono lokusebenzisa imitapo yolwazi ye-.NET nezici ezengeziwe ezifana namakilasi ajwayelekile, izixhumanisi , ukulayishwa ngokweqile komsebenzisi, λ-izinkulumo, okuhlukile, ukuqoqwa kukadoti, izindlela zokunweba, amakilasi angenamagama kanye nezigaba ezizenzakalelayo. Iphrojekthi igxile kakhulu ekusetshenzisweni kwezemfundo nocwaningo. Iphakheji ihlanganisa nendawo yokuthuthuka enamacebo ekhodi, ukufometha okuzenzakalelayo, isilungisi sephutha, umklami wefomu, namasampuli ekhodi yabaqalayo. Ikhodi yephrojekthi isatshalaliswa ngaphansi kwelayisensi ye-LGPLv3. Ingakhiwa ku-Linux (i-Mono-based) ne-Windows.

Izinguquko ekukhishweni okusha:

  • Добавлена поддержка срезов многомерных массивов 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] end.
  • Добавлены лямбда-выражения с распаковкой параметров, являющихся кортежами или последовательностями. Появилась возможность давать имена элементам кортежей прямо в параметрах лямбды. Чтобы распаковать параметр-кортеж t в переменные x и y, используется запись \\(x,y). Это один параметр в отличие от записи (x,y), представляющей два параметра: begin var s := Seq((‘Умнова’,16),(‘Иванов’,23), (‘Попова’,17),(‘Козлов’,24)); Println(‘Совершеннолетние:’); s.Where(\\(name,age) -> age >= 18).Println; Println(‘Сортировка по фамилии:’); s.OrderBy(\\(name,age) -> name).Println; end.
  • Разрешена конструкция «a as array of T», которая ранее была запрещена на уровне грамматики. begin var ob: object := new integer[2,3]; var a := ob as array [,] of integer; end.

Source: opennet.ru

Engeza amazwana