מעלדונג פון PascalABC.NET 3.8 אַנטוויקלונג סוויווע

די מעלדונג פון די PascalABC.NET 3.8 פּראָגראַממינג סיסטעם איז בנימצא, און אָפפערס אַן אַדישאַן פון די Pascal פּראָגראַממינג שפּראַך מיט שטיצן פֿאַר קאָד דור פֿאַר די .NET פּלאַטפאָרמע, די פיייקייט צו נוצן .NET לייברעריז און נאָך פֿעיִקייטן אַזאַ ווי דזשאַנעריק קלאסן, ינטערפייסיז , אָפּעראַטאָר אָוווערלאָודינג, λ-אויסדרוקן, אויסנעמען, מיסט זאַמלונג, פאַרלענגערונג מעטהאָדס, נאָמען קלאסן און אַוטאָקלאַסס. דער פּרויעקט איז דער הויפּט פאָוקיסט אויף אַפּלאַקיישאַנז אין בילדונג און וויסנשאפטלעכע פאָרשונג. דער פּעקל אויך כולל אַ אַנטוויקלונג סוויווע מיט קאָד הינץ, אַוטאָ פאָרמאַטטינג, אַ דיבוגגער, אַ פאָרעם דיזיינער און קאָד סאַמפּאַלז פֿאַר ביגינערז. די פּרויעקט קאָד איז פונאנדערגעטיילט אונטער די LGPLv3 דערלויבעניש. קענען זיין געבויט אויף לינוקס (מאָנאָ-באזירט) און ווינדאָוז.

ענדערונגען אין די נייַע מעלדונג:

  • Добавлена поддержка срезов многомерных массивов 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.

מקור: opennet.ru

לייגן אַ באַמערקונג