NETSquirrel - вопросы и ответы

Краткий FAQ по некоторым возможностям модулей и библиотеки, разработанный специально для PascalABC.NET (для C# версии - презентации). Цель: быстро ввести пользователя в курс дела.

Перейти к содержанию

Не было этого. Он просто хотел сделать себе красиво. Не вышло.

Новая тема для PascalABC.NET, сделанная похожей на тему Rider (поскольку именно в данной IDE разрабатывается библиотека).

PascalABCNET.xshd (9.3 KB)

Краткий FAQ по некоторым возможностям модуля PABCSystem, разработанный специально для C#. @Admin, @ibond, @RAlex, @Sun_Serega, @Kotov, имеются предложения по дополнению FAQ? Я пока не решил, что включать в раздел Уровень: Сложный. У вас есть идеи?

Перейти к содержанию

Выпуск NETSquirrel 0.0.13 [Night build] запланирован на сегодня.

NETSquirrel 0.0.13 [Night build] загружена в раздел Releases на GitHub.

  • методы для чтения массивов, матриц и кортежей с возможностью задавать форматные строки делегатами
  • улучшения в обработке ошибок

Пример к пункту 1:

{$reference NETSquirrel.dll}
uses NETSquirrel;
uses NETSquirrel.Utils;
uses GeneralExtensions;

begin
  var prompts := ArrayOf('first', 'second', 'third', 'fourth', 'fifth');
  TuplesUtils.ReadBoolTuple3((i: integer) -> $'{prompts[i]}:').PrintLine(); // compiler mistake
  ArraysUtils.ReadBoolArray(5, (i: integer) -> $'{prompts[i]}:').PrintLine(); // compiler mistake
  MatricesUtils.ReadBoolMatrix(5, 5, (i, j) -> $'{prompts[i]}, {prompts[j]}:').PrintAsMatrix();
end.

Перейти к содержанию

А зачем явно указывать тип i в средних 2 примерах? Это только в данном примере или вообще обязательно? По моему того что переменная называется i и используется в [] должно было бы быть понятно что это индекс и у него тип integer.

Без указания типа не компилируется. Вы можете перепроверить у себя. Ошибка - некритическая, работать возможно, но, конечно, краткость кода уменьшает. И хотелось бы, раз библиотека нацелена на краткое выполнение операций, чтобы ничего лишнего писать не требовалось.

Это issue значит

1 лайк

@Sun_Serega, возможно, поможет установить причину проблемы, либо я этим займусь сам, когда освобожусь.

Добавлены расширения для System.Numerics:

{$reference NETSquirrel.dll}
uses NumericsExtensions;
uses GeneralExtensions;

begin
  var prompts := ArrayOf('first', 'second', 'third');
  ReadVector3();
  ReadMatrix3x2('Элемент {0}, {1}:');
  ReadMatrix3x2((i, j) -> $'{prompts[i]}, {prompts[j]}:');
end.

Перейти к содержанию

Полагаю, будет справедливо указать кто именно и чем помог в разработке проекта, поскольку любое участье в нём приносит пользу. Пока данный раздел ещё недозаполнен.

В данный момент библиотека NETSquirrel 0.0.13 включает следующий функционал:

  • интерфейсы коллекций (immutable их версии включены) для стандартизации кода
  • прокси-типы для указания отладчикам Rider и Visual Studio формата отображения коллекций как обобщённых, так и необобщённых
  • методы для чтения и генерации кортежей, массивов и матриц с возможностью обработки ошибок и указания форматных строк при вводе строкой, либо лямбда функцией
  • расширения для модификации кортежей, массивов и матриц с возможностью игнорирования ошибочных входных данных (значения null), паттерн null-object
  • типы делегатов
  • срезы массивов и матриц

Добавлены два FAQ (C# версия и PascalABC.NET версия) по работе с базовыми типами.

Теперь учебные материалы по библиотеке и модулям будут составляться на основе Google Docs. Это позволит пользователям без Microsoft Office без проблем изучать их. Разумеется, существующие презентации не будут удалены с сайта. Они будут перемещены в архив.

А что не в PDF? Его уж точно все поддерживает, а гугловские документы привязаны к браузеру и его шрифтам.

1 лайк

Будет сделано.

Только не забудьте, что надо использовать “приличный” конвертер, оставляющий возможность простым копипастом добывать из PDF текст, а не лепящим тупые картинки. Например, если в Word от версии 2010 сохранить документ, как PDF и указать опцию “внедрять шрифты”, все будет расчудесно. Но неприемлемо для файлов, размером более 20-30 страниц, ибо он не умеет сжимать документы.

1 лайк

PDF сделан. Код копируется и вставляется успешно. Только, есть один недостаток при вставке - код вставляется в неотформатированном виде (к счастью, средства автоматического форматирования в IDE PascalABC.NET имеются). Пробовал напрямую загружать из Google Drive документы как Pdf, также использовал сторонние конверторы, результат один и тот же - код вставляется неотформатированный.

Также попробовал конвертировать в формат .docx, здесь - код вставляется в отформатированном виде.

Сделал Issue:

Следует, всё-таки, эту проблему решить.

А если для желающих дать возможность скачать PDF, как файл?

Да. Но, как я понимаю, Вы имели ввиду возможность скачать без открытия предпросмотра?