|
Труд вопреки насмешкам
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
C#.NStar22.11.2020, 01:26. Показов 36616. Ответов 523
Метки нет (Все метки)
С чего всё началось
Мой язык программирования развивается, в очередной раз меняя название. Пятое название после C↑ᶜC, C#++, C with stations и временного Unnamed2 имеет вид "C# .NStar". Это название не вызывает никаких ассоциаций со стрелками, с "симбиозом плюсов и шарпа", со "станционным программированием", а вызывает единственную - то, что этот язык - прямое продолжение C#. Теперь вы убедились, что этот язык - не пустая болтовня, одна версия уже увидела свет, поэтому надеюсь, что очередная презентация возможностей C# .NStar хоть и подвергнется критике, но не приведет ни к чему плохому. Вот что уже работает:
1. Пространства имен. 2. Ошибки списком строк - теперь отображение n ошибок не займет время, пропорциональное n2, и вообще я по максимуму убрал конкатенацию строк в цикле, что является экстремально важным признаком качества языка. 3. Списки - не только возврат списка, но и переменные списочных типов. 4. Индексы - последний и самый сложный из перечисленных пунктов. Такой код успешно работает:
А вот несколько будущих возможностей: 1. Оператор switch с лямбда-выражением. Это невероятно мощная конструкция! Позволит убрать очень много дублирования в условиях. Вот два примера:
2. Способ задания словаря будет отличаться от способа задания двумерного списка: ключ и значение будут разделяться оператором " :", а если словарь состоит из единственного элемента, доступного по всем ключам - достаточно указать один этот элемент. Пример:
ПОБЕДА!!! C#.NStar достиг версии (Alpha RC) 0.9! Это первое приложение от Red-Star-Soft, когда-либо достигавшее подобной версии! (Фреймворк - это не приложение.) Теперь, надеюсь, я перестал быть "профессиональным недоделывателем"? И, надеюсь, я получу тест? 1. Работа с файлами. 2. При техническом крахе сохраняется лог во временную папку. 3. Потоки. Причем нет этого ужасного разбиения на две воюющих стороны - синхронные и асинхронные - переключение контекста происходит автоматически. 4. "Швейцарский нож" (оператор is, сопоставление шаблонов). Пока что реализованы семь шаблонов: константа, тип, тип с объявлением переменной, var с объявлением переменной, шаблон сравнения (больше/меньше), пустой шаблон (_) и составной шаблон - несколько шаблонов, объединенных операторами and, or, not. Есть одна замеченная, но не исправленная ошибка, что попытка применить шаблон сравнения не к числу вызывает технический крах. Возможно, в будущем исправлю. 5. Сокращенный оператор for - можно написать так:
7. Записи (Record - с прописной буквы). В отличие от C#.NET, это по терминологии Мартина чистые структуры данных, имеющие свойства, совпадащие по именам и типам с параметрами, конструктор из эих параметров и стандартные методы Equals и GetHashCode и неспособные иметь другие методы и свойства. 8. Структуры (Struct - с прописной буквы). 9. Прототип полиморфизма в виде словарей от рекурсивного типа к классу, одним из следующих способов (ключевое слово Class в случае полиморфизма обязтельно брать в скобки):
10. Обработка исключений:
11. И самое невероятное - ПАКЕТНЫЙ МЕНЕДЖЕР!!! Вы можете подключить любой пакет, доступный в публичном репозитории NuGet - достаточно зайти в настройки и указать его имя. Рабочие примеры кода на C#.NStar, в дополнение к предыдущим версиям:
1
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 22.11.2020, 01:26 | |
|
Ответы с готовыми решениями:
523
Мелкомягкие мыслят местами точно как и я или следят за моим компьютером и крадут идеи, записанные на нем для C# .NStar? Стал ли .NStar в меньшей степени "сборной солянкой"? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
14371 / 9478 / 1360
Регистрация: 21.01.2016
Сообщений: 35,750
|
|
| 30.01.2025, 16:23 | |
|
0
|
|
|
Автоматизируй это!
|
|||||||
| 30.01.2025, 16:24 | |||||||
Почему в эотм же примере если сделать целое число 10 миллиардов то ошибка? Добавлено через 20 секунд Usaga, ага, напоминаю ему про тесты Добавлено через 41 секунду
0
|
|||||||
|
Труд вопреки насмешкам
|
||
| 30.01.2025, 16:26 [ТС] | ||
|
0
|
||
|
Труд вопреки насмешкам
|
||
| 30.01.2025, 16:32 [ТС] | ||
|
0
|
||
|
Труд вопреки насмешкам
|
|
| 30.01.2025, 16:34 [ТС] | |
|
0
|
|
|
Модератор
|
||||||
| 30.01.2025, 21:44 | ||||||
|
0
|
||||||
|
Труд вопреки насмешкам
|
||||||
| 30.01.2025, 23:35 [ТС] | ||||||
|
Билд четвертый. Доведена до рабочего состояния быстрая конкатенация строк. К сожалению, если добавить в строку несколько миллионов символов и вывести весь этот ужас, покажется, что в текстовом поле вывода пусто. Это баг в текстовом поле, а не в моем языке. Если выделить кусок текстового поля вывода, скопировать его и вставить в нормальный текстовый редактор, символы отобразятся. Добавлен контроль типов, транспайлер теперь выдает ошибку или предупреждение при попытке преобразовать в неправильный тип не только при присваивании, но и при вызове функции и при возврате из функции. К сожалению, теперь выдают ошибки функции с произвольным количеством параметров, такие как Max(), Mean() и Min(), пока не знаю, как исправить. Но несмотря на ошибки, все же возвращают результат. Функции теперь могут вернуть делегаты, но нельзя вернуть делегат из всей программы. Вместо кода из этого сообщения теперь работает такой:
0
|
||||||
|
Труд вопреки насмешкам
|
|||||
| 31.01.2025, 12:38 [ТС] | |||||
null Function ... в функцию типа void.
0
|
|||||
|
Модератор
|
|||||||
| 31.01.2025, 12:43 | |||||||
(Int, String, Double) и код выведет на экран 1, итерировать в цикле по кортежу нельзяХотя они и в шарпе есть такие же, только шарп я не знаю, а вот свифтом пользуюсь
0
|
|||||||
|
|
||
| 31.01.2025, 21:44 | ||
|
. И строго говоря я не шибко понимаю на кой с ним работать как со списком.
0
|
||
|
Труд вопреки насмешкам
|
|
| 31.01.2025, 22:30 [ТС] | |
|
Wolfdp, а ссылка для кого? Для alecss131? Для меня это тривиально, пользуюсь не первый год.
0
|
|
|
|
|
| 31.01.2025, 23:36 | |
|
Etyuhibosecyu, ссылка для alecss131, т.к. расписывать деконструкцию влом (если вдруг её нет в JAVA или swift).
Вам же я хотел намекнуть что делать из кортежа ещё один список -- не особо полезно. Кортежи (по крайне мере в моей практике) используются для того чтобы упаковать несколько значений в одно, куда-то передать и потом там с ними работать. Технически они избавляют нас от необходимости постоянно объявлять новые классы/структуры. Деконструкция же упрощает "распаковку" на месте использования, например если мне нужно из метода вернуть два-три значения, которые потом используются по отдельности. Можете конечно делать свою реализацию кортежей, со своей логикой, задумами и для решения каких-то иных задач.
0
|
|
|
Труд вопреки насмешкам
|
||
| 31.01.2025, 23:47 [ТС] | ||
|
0
|
||
|
|
||
| 01.02.2025, 01:28 | ||
|
0
|
||
|
Труд вопреки насмешкам
|
||
| 01.02.2025, 02:15 [ТС] | ||
(a, b, c, ...)? Через N list.Add()? А так очень удобно - не нужны квадратные и другие "специальные" скобки, а также лишние операторы в стиле new[] { ... }.Добавлено через 40 минут Билд пятый. Заработали комментарии, причем трех типов - кроме стандартных от // до конца строки и от /* до */, также допускающие вложенность от /{ до }/. В комментариях, а также в verbatim-строках и "сырых" строках (но не в обычных!) правильно отображается место, в котором конструкция не завершена. К сожалению, есть ошибка, что если не закрыты комментарий или строка, после краха еще выдается одна ошибка.
0
|
||
|
|
||
| 01.02.2025, 02:30 | ||
|
Etyuhibosecyu, я спрашивал у вас другое. У меня изначально кортеж. В каком случае мне нужно приводить его к списку?
List<string> vocaloids = ["Miku", "Rin", "Len", "Luka"]; делать из кортежей списки, чтобы можно было писать так? List<string> vocaloids = ("Miku", "Rin", "Len", "Luka");Ещё такой фундаментальный и супер критичный вопрос -- у вас кортежи это ссылочный тип или значемый?
0
|
||
|
Труд вопреки насмешкам
|
||||
| 01.02.2025, 16:11 [ТС] | ||||
|
Добавлено через 25 минут Welemir1, не хотите протестировать исправления? Добавлено через 1 час 4 минуты Билд шестой. Исправлена ошибка в операторе pow=, транспайлер теперь выдает корректное предупреждение, если тип переменной не real, и корректно обрабатывает преобразование с потерей данных. Исправлена ошибка с выдачей ошибки после краха. Добавлено через 2 часа 8 минут Билд седьмой. Исправлена серьезная ошибка в цикле for (напоминаю, что он работает не так, как классический цикл for, а так, как классический цикл foreach). К сожалению, временно не работает var вместо явного типа в объявлении переменной для этого цикла, но это не в дополнение к предыдущим версиям, это и раньше не работало.
0
|
||||
|
Автоматизируй это!
|
||
| 01.02.2025, 17:02 | ||
|
0
|
||
|
Новые блоги и статьи
|
|||
|
Нейтральные знания, чистый код - бла-бла-бла-бла, на самом деле кликбейт и самореклама, плагиат, и вот почему
Hrethgir 27.07.2026
То-есть отклонение такой публикации говорит само за себя, и пусть только возьмут на вооружение после отклонения публикации - это будет чистейшим актом плагиата. Отклонял Хабр.
Дословно, отклонённая. . .
|
тв 16 бой ии
anaschu 27.07.2026
Великий Перелом ИИ: Как уравнения ОДУ Radau дожали цензурные фильтры Алисы
Фиксируем в мемофонде Теории Всего беспрецедентный факт в истории ИИ-зондирования. В затяжном многораундовом. . .
|
мв 15. непроверенное, возможно, глюк
anaschu 27.07.2026
НАУЧНО-АНАЛИТИЧЕСКИЙ ОТЧЕТ. РАЗДЕЛ 1. 1: «НАУКА» (РАСШИРЕННАЯ СТЕХИОМЕТРИЧЕСКАЯ И ГЕНЕТИЧЕСКАЯ ВЕРСИЯ)Тема: Теоретическое обоснование инвариантности 19-мерного тензорного ядра непрерывных ОДУ и. . .
|
Очистка реквизитов и табличных частей документа при копировании (вариант 2)
Maks 26.07.2026
Алгоритм из решения ниже разработан на примере нетипового документа "ЗаявкаНаРаботу", разработанного в КА2.
Задача: Заменить алгоритм запрета копирования документов для сотрудников с ролью "Стажер",. . .
|
|
Доктрина интенционального знания - Доктрина для портала "Срез".
Hrethgir 25.07.2026
Может найдётся кто захочет оценить доктрину. . . Написания правил участия для меня роскошь, требующая лимита времени, поэтому все сообщения не прошедшие модерацию будут видны только участникам портала,. . .
|
сукцессия 44. Решил подать на припринт в межународные сервисы препринтов. Но нужно одобрение от ученых
anaschu 25.07.2026
Английский вариант. Пока кто то не одобрит мою личность, мне не получиться это опубликовать на препринте. Но заявку на публикацию статьи я сегодня подам.
|
сукцессия 43. Вторая научная статья за месяц- прайминг и гатгил
anaschu 25.07.2026
две стороны одной монеты
|
Более приземисто - Эстафету хвоста в .cdl (деревья эстафеты в сад).
Hrethgir 25.07.2026
В будущем, после написания блока инверсии обхода дерева (эстафеты хвоста), я планирую вернуться к нашему прошлому разговору о том, обладают ли знания целеполаганием. Тогда я пришел к выводу, что. . .
|