Библиотека ABCNET - обсуждение

Func<Tuple<T, T>, TOutput>

А в чём смысл тогда, если вы всё равно создаёте картёж для параметра? Преимущество только если передавать 2 отдельными параметрами.

Насчёт issue - нужна только 1 типа “пройтись по всем методам и…”. Мне хватает работы в своих проектах проходится по всему коду перед каждым релизом, чтоб проверить на говнокод. Ну а если с этой стороны посмотреть - вы лучше знаете что в такой issue написать.

Кроме того, мне не кажется необходимым совмещать функционал .Select сразу со всеми методами. В случаях вроде .Pairwise и .GroupBy это особо полезно, потому что позволяет не плодить очень много лишних мелких объектов.

Но когда это позволяет написать на аж 8 символов меньше (из которых половину допишет IDE) - ни к чему это.

1 лайк

Поправил. Обновил Release.

Просьба @Admin, @ibond, @RAlex, @Valery, @Vadim_Dzhenzher, @Sun_Serega, @Kotov посмотреть что можно убрать из библиотеки, чтобы в ней был функционал, востребованный при решении школьных и университетских задач, а не редко используемый.

Добавил примеры кода. Доступны также в Wiki на GitHub.

Все примеры с Wiki переведены на PascalABC.NET.

uses System;
begin
  Console.ReadLine();
end.

Вводить данные нельзя при запуске из под оболочки при использовании Console.ReadLine() из NET. Это делает затруднительным использование ABCNET в PascalABC.NET. @Admin, это недоработка, или так и было задумано? С одной стороны - вполне логично, что в среде программирования для Pascal (!) по умолчанию поддерживаются в режиме запуска из под оболочки лишь стандартные средства ввода вывода. С другой - хотелось бы, чтобы IDE позволяла работать напрямую со средствами ввода-вывода NET.

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

1 лайк

Мы прописали данную особенность в комментариях в ABCNET, чтобы Вашим студентам и пользователям вообще было легче и не натыкались на подобные ошибки.

@Admin, Вы говорили, что будете давать ссылку на репозиторий ABCNET своим студентам, но, может, где-нибудь и на Вашем сайте это написать (когда придёт время). Иначе - откуда люди узнают, что такая библиотека вообще есть?

Можно, к примеру, сделать отдельный раздел на сайте (возможно, это некоторая наглость с моей стороны), посвящённый всем проектам (точнее, не только моим), которые тем или иным образом ориентировались при своём развитии на PascalABC.NET, но не были включены как его стандартные компоненты (при скачивании, например). Помню, что @Gleb делал какие-то проекты, возможно, не будет лишним вспомнить на сайте и про него…

Мы не должны забывать о нашем прошлом, ведь существуем в настоящем таком, какое оно есть, только благодаря ему…

1 лайк

ABCNET как альтернатива PABCSystem.pptx (372.4 KB)

1 лайк

@Admin, как мне сделать возможным запуск примеров на PascalABC.NET онлайн? На подобие примеров на C#. У Вас был проект WDE, который закрыт. Может, переоткрыть, чтобы хотя бы пользоваться можно было… Он поддерживал установку NuGet-пакетов? Если не поддерживал, то переоткрывать не стоит, на мой взгляд. Сейчас несимметрично выходит - примеры на C# смотреть онлайн можно, а на PascalABC.NET - нет.

WDE это проект редактора. Для запуска примеров от всего WDE вам нужно только хостинг, на котором установлен .Net

В принципе - да. .NET Fiddle - тоже IDE, но имеет интеграцию с NuGet. Для начала я рассматривал простой вариант - подключать в онлайн-IDE NuGet-пакет библиотеки.

WDE как проект закрыт. Его код оказался не защищён перед вирусами, которые уничтожали сервер каждые пару месяцев.

Как вариант можно запросить поддержку PascalABC.NET, например, в Repl.it. Сообщество доброе, может, и сделают.

Пробуйте. Дело правильное

1 лайк

Осталось ждать ответа поддержки.

Доступен NuGet-пакет для скачивания и установки в PascalABC.NET/Visual Studio/Rider и других IDE, имеющих интеграцию с NuGet.

https://www.nuget.org/packages/NETMouseProjectsOrganization.ABCNET/0.0.1

1 лайк

@Admin, предлагаю Вам подумать над тем, чтобы сделать новый тип проекта в PascalABC.NET, в который бы по-умолчанию подключался бы данный NuGet-пакет (последней версии). На мой взгляд, это было бы удобно для тех, кому понравился ABCNET, но “таскать” явно библиотеку к программам не хочется. Главное, что это даст - простоту использования (начинающим не надо будет задумываться что такое NuGet-пакет и скачивать устанавливать его явно), и безболезненный переход на C# (или любой другой NET-язык), ведь на нём можно будет точно также использовать библиотеку. Кроме того, это не срочно.

Иконку я могу нарисовать, только скажите какого размера.

Что скажите?

Дополнение

Можно также сделать кнопку Обратиться в поддержку для ABCNET, появляющуюся по нажатию RMB по названию ABCNET в IDE PascalABC.NET, чтобы мне напрямую могли пользователи обращаться. Аналогично можно было бы сделать и для стандартных модулей, но, чтобы Обратиться в поддержку тогда появлялась при нажатии RMB по имени модуля (и без режима проекта). Адреса тем известны, в которые новичков можно отправить, так пускай это можно будет сделать прямо из IDE. Доступность - важный момент.