Версия PascalABC.NET 3.1

Ох, сдается мне, не всегда это хорошо… У нас уже есть, к примеру, локализованный MS Excel. Навскидку сможете сказать, что означают функции БИЗВЛЕЧЬ, ВСД, ГПР, ЕНД и МАКСА? ))))

Вот если бы это сделать опционально в настройках…

Мне достаточно, что я могу сказать, что означает истина и ложь.

Ну не знаю… писать константы true/false и получать на выводе Истина/Ложь? А как потом быть с вводом/выводом в текстовый файл? Вывести “Истина” и не суметь потом назад прочитать в логическую переменную?

P.S. Интересно, что бы с Н.Виртом стало после знакомства с PascalABC.Net 3.1 ?

Ну, Вирт свое детище давно забросил, так что его мнение будет мало кому интересно. Его развивают уже другие люди. :wink:

Мы как-то не задумывались - как .NET выводит так и выводит:

begin
  System.Console.WriteLine(True);
  System.Console.WriteLine(5.0/0.0);
end.

Вывод а русской локали:

True
бесконечность

Понятно. Ну, это просто как предложение. Мне кажется, детям бы приятней было. Смешная у них история с локализацией булевских значений: параметр есть, а поведения нет…

Когда можно будет использовать uses crt и в модулях? У меня есть программа в этой программе есть мною написанный модуль в котором есть: uses crt и в основном файле программы у меня тоже используется crt что приводит к ошибке в консоли. Когда это будет исправлено?

Я неправильно понимаю смысл расширения Transform ?

// PascalABC.NET 3.1, сборка 1219 от 16.04.2016
begin
  var a:array of integer:=(1,2,3,4,5);
  var b:=a.Transform(x->-x);
  b.Println;
end.

Неправильно. То, что Вы хотите сделать, называется a.Select(x->-x).ToArray

Я именно этой конструкцией и воспользовался. Но мне бы еще хотелось где-то увидеть примеры работы с Transform, потому что никак не могу понять, для чего это расширение и как им пользоваться.

И попутно: после переделки на сайте обзора возможностей версии .NET, когда стало два файла вместо одного, исчез пример работы с Dictionary под названием “Частотный словарь”. А жаль, потому что часто нужно бывает, а теперь к нему людей не отошлешь.

Появилась возможность писать короткие типы в параметрах обобщения:

begin
  var q := new Queue<(integer,integer)>;
  q.Enqueue((1,2));
  q.Enqueue((2,5));
  q.Println;
  Println(q);
  
  var l := new List<integer->integer>;
  l.Add(x->x);
  l.Add(x->x*x);
  l.ForEach(f->Print(f(5)));
  Println;
  
  var l1 := new List<(integer,integer)->integer>;
  l1.Add((x,y)->x+y);
  l1.Add((x,y)->x-y);
  l1.Add((x,y)->x*y);
  l1.ForEach(f->Print(f(2,3)));
end.
1 лайк
begin
  var a := Arr(1,2,3);
  a.Transform(x->x*x);
  a.Println;
end.
1 лайк

14 posts were split to a new topic: Срезы и контроль выхода за границы

Нельзя ли сделать, чтобы работали документирующие комментарии для элементов перечислимых типов (да и для самих типом)?

Например.

/// Перечислимый тип для вида кнопки калькулятора
type Command  = (
                  /// Кнопка операции ("+", "-" и т.п.)
                  Op, 
                  
                  /// Кнопка результата "="                  
                  Res, 
                  
                  /// Нажатий кнопок не было
                  None);

В подсказке не отображаются :frowning:

Добавьте пожалуйста в Issue

1 лайк

Есть. Для типов, оказалось, было. А вот для элементов нет.

Заявлена в новой версии возможность использовать идентификаторы на кириллице. Никак не могу найти, как ее пользоваться. Естественно в первую очереди интересуют ключевые слова, остальное и так очевидно.

Ключевые слова - это не идентификаторы

Все, разобрался. Просто встретил в описании:

var сумма: вещ := 0.0; var количество: цел := 10;

думал новые типы ввели. Потом только заметил, что их явно здесь же определили.

Определите их в модуле Русский и подключайте его везде