Форум программистов, компьютерный форум, киберфорум
Бета-тестирование
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Труд вопреки насмешкам
 Аватар для Etyuhibosecyu
363 / 181 / 41
Регистрация: 13.07.2017
Сообщений: 4,829
Записей в блоге: 14

C#.NStar

22.11.2020, 01:26. Показов 36072. Ответов 523
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
С чего всё началось
Мой язык программирования развивается, в очередной раз меняя название. Пятое название после C↑ᶜC, C#++, C with stations и временного Unnamed2 имеет вид "C# .NStar". Это название не вызывает никаких ассоциаций со стрелками, с "симбиозом плюсов и шарпа", со "станционным программированием", а вызывает единственную - то, что этот язык - прямое продолжение C#. Теперь вы убедились, что этот язык - не пустая болтовня, одна версия уже увидела свет, поэтому надеюсь, что очередная презентация возможностей C# .NStar хоть и подвергнется критике, но не приведет ни к чему плохому. Вот что уже работает:
1. Пространства имен.
2. Ошибки списком строк - теперь отображение n ошибок не займет время, пропорциональное n2, и вообще я по максимуму убрал конкатенацию строк в цикле, что является экстремально важным признаком качества языка.
3. Списки - не только возврат списка, но и переменные списочных типов.
4. Индексы - последний и самый сложный из перечисленных пунктов. Такой код успешно работает:
Code
1
2
list(3) int a = (((1, 2, 3), (4, 5, 6), (7, 8, 9)), ((10, 11, 12), (13, 14, 15), (16, 17, 18)), ((19, 20, 21), (22, 23, 24), (25, 26, 27)));
return a[1, 2, 3];
Но для того, чтобы выложить версию, этого мало. Это просто презентация.
А вот несколько будущих возможностей:
1. Оператор switch с лямбда-выражением. Это невероятно мощная конструкция! Позволит убрать очень много дублирования в условиях. Вот два примера:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
if (task.StartsWith("Class "))
{
    return Action1(task.Substring("Class ".Length));
}
else if (task.StartsWith("Interface "))
{
    return Action2(task.Substring("Interface ".Length));
}
else if (task.StartsWith("Function "))
{
    return Action3(task.Substring("Function ".Length));
}
else if (task.StartsWith("Extent "))
{
    return Action4(task.Substring("Extent ".Length));
}
...
Code
1
2
3
4
5
6
7
8
return x => task == x + string s switch
{
    "Class " => Action1(s);
    "Interface " => Action2(s);
    "Function " => Action3(s);
    "Extent " => Action4(s);
    ...
};
Прошу обратить особое внимание на огромную мощь этой конструкции и написать, хотели бы вы ею воспользоваться или нет, и если нет, то почему.
2. Способ задания словаря будет отличаться от способа задания двумерного списка: ключ и значение будут разделяться оператором ":", а если словарь состоит из единственного элемента, доступного по всем ключам - достаточно указать один этот элемент. Пример:
Code
1
2
Dictionary[string, int] dic1 = ("Съешь": 1, "же": 2, "ещё": 3, "этих": 4, "мягких": 5, "французских": 6, "булок": 7, "да": 8, "выпей": 9, "чаю": 10, _: 0);
Dictionary[string, int] dic2 = -12345;
3. Оператор ![], позволяющий сменить внутренний тип коллекции без смены внешнего типа. Это позволит создать аналог LINQ нового поколения - Jaretorant, в котором не надо завершать каждое выражение функциями ToArray() или ToList(). Только посмотрите:
Code
1
2
3
4
() int oldList;
() real newList = oldList.TransformEach(x => 1r / x);
LinkedList[int] oldList2;
LinkedList[real] newList2 = oldList2.TransformEach(x => 1r / x);
А сама конструкция TransformEach записывается таким способом:
Code
1
2
3
4
5
6
7
8
9
10
Dictionary[(typename TSource, typename TCollection : IEnumerable[TSource], typename TDest), TCollection![TDest] Extent(TCollection source, Func[TDest, TSource] Transformator)] =
{
    TCollection![TDest] output = new TDest[source.Count()];
    int i = 0;
    for (TSource elem in source)
    {
        output[i++] = Transformator(elem);
    }
    return output;
}
P. S. Недавно я наткнулся на список торговых знаков Microsoft. Оказывается, там написано, что нельзя искажать, модифицировать или комбинировать с любыми словами, символами, изображениями или другими видами информации любые из этих торговых знаков. Но самих знаков немного: само слово "Microsoft", Windows, MSN, Bing, Skype, Microsoft Edge и еще один или два. C# там нет! Поэтому создать язык с названием C# .NStar мне ничего не мешает.


 Комментарий модератора 
Update от 09.02.2026


ПОБЕДА!!! C#.NStar достиг версии (Alpha RC) 0.9! Это первое приложение от Red-Star-Soft, когда-либо достигавшее подобной версии! (Фреймворк - это не приложение.) Теперь, надеюсь, я перестал быть "профессиональным недоделывателем"? И, надеюсь, я получу тест?
1. Работа с файлами.
2. При техническом крахе сохраняется лог во временную папку.
3. Потоки. Причем нет этого ужасного разбиения на две воюющих стороны - синхронные и асинхронные - переключение контекста происходит автоматически.
4. "Швейцарский нож" (оператор is, сопоставление шаблонов). Пока что реализованы семь шаблонов: константа, тип, тип с объявлением переменной, var с объявлением переменной, шаблон сравнения (больше/меньше), пустой шаблон (_) и составной шаблон - несколько шаблонов, объединенных операторами and, or, not. Есть одна замеченная, но не исправленная ошибка, что попытка применить шаблон сравнения не к числу вызывает технический крах. Возможно, в будущем исправлю.
5. Сокращенный оператор for - можно написать так:
Code
1
2
3
4
for (i in collection)
{
    ...
}
- или так:
Code
1
2
3
4
for (i in a..b)
{
    ...
}
6. Сокращенные константы - если есть ключевое слово const, необзательно писать var или тем более полный тип.
7. Записи (Record - с прописной буквы). В отличие от C#.NET, это по терминологии Мартина чистые структуры данных, имеющие свойства, совпадащие по именам и типам с параметрами, конструктор из эих параметров и стандартные методы Equals и GetHashCode и неспособные иметь другие методы и свойства.
8. Структуры (Struct - с прописной буквы).
9. Прототип полиморфизма в виде словарей от рекурсивного типа к классу, одним из следующих способов (ключевое слово Class в случае полиморфизма обязтельно брать в скобки):
Code
1
2
3
4
const [typename T, (Class)] ClassName = new(
{
    ...
});
Code
1
2
3
4
const ClassName = new [typename T, (Class)](
{
    ...
});
Code
1
2
3
4
const var ClassName = new [typename T, (Class)](
{
    ...
});
Code
1
2
3
4
const [typename T, (Class)] ClassName = new [typename T, (Class)](
{
    ...
});
Code
1
2
3
4
const [typename T : BaseType, (Class : BaseType2)] ClassName = new(
{
    ...
});
Code
1
2
3
4
const ClassName = new [typename T : BaseType, (Class : BaseType2)](
{
    ...
});
Code
1
2
3
4
const var ClassName = new [typename T : BaseType, (Class : BaseType2)](
{
    ...
});
Code
1
2
3
4
const [typename T : BaseType, (Class : BaseType2)] ClassName = new [typename T : BaseType, (Class : BaseType2)](
{
    ...
});
Словари от чисел, строк или других типов, кроме typename, пока лучше даже не пытаться создавать - они не работают!
10. Обработка исключений:
Code
1
2
3
4
5
6
7
8
try
{
    ...
}
catch (ExceptionType var) if (condition) // if, а не when
{
    ...
}
В текущей версии доступен базовый набор исключений: Exception, ArgumentException (включает в себя ArgumentNullException и ArgumentOutOfRangeException, хотя явно указать их нельзя), IndexOutOfRangeException, InvalidOperationException, NullReferenceException и IOException.
11. И самое невероятное - ПАКЕТНЫЙ МЕНЕДЖЕР!!! Вы можете подключить любой пакет, доступный в публичном репозитории NuGet - достаточно зайти в настройки и указать его имя.
Рабочие примеры кода на C#.NStar, в дополнение к предыдущим версиям:
Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
using System;
using System.Threading;
Class MyClass
{
    Constructor()
    {
    }
    int Function Sync()
    {
        var x = MyClass2.MyFunc(5);
        return x;
    }
    Task[int] Function Async1()
    {
        var x = MyClass2.MyFunc(5);
        return x;
    }
    Task[int] Function Async2(int n)
    {
        return n * n;
    }
}
 
static Class MyClass2
{
    Func[Task[int], int] MyFunc = new MyClass().Async2;
}
 
return new MyClass().Async1();
Code
1
2
3
object item = "Welcome!";
if (item is string text)
    return text;
Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
abstract Class BaseStack
{
    required typename T { get, init };
    
    abstract T Function Peek();
    abstract T Function Pop();
    abstract null Function Push(T item);
}
 
const [typename T, (Class : BaseStack[T])] Stack = new(
{
    private () T list = new(32);
 
    T Function Peek()
    {
        return list[^1];
    }
 
    T Function Pop
    {
        return list.GetAndRemove(list.Length - 1);
    }
 
    null Function Push(T item)
    {
        list.Add(item);
    }
});
 
BaseStack[int] intStack = new Stack[int]();
intStack.Push(5);
intStack.Push(10);
var x = (intStack.Pop(), intStack.Peek());
BaseStack[string] stringStack = new Stack[string]();
stringStack.Push("A");
stringStack.Push("B");
var y = (stringStack.Pop(), stringStack.Peek());
return (x, y);
Code
1
2
3
4
5
6
() int list = new();
for (i in Chain(0, 10)) while (i * i % 20 < 10)
{
    list.Add(i);
}
return list;
Code
1
2
3
4
5
6
int n = 0;
for (i in 1..1000)
{
    n++;
}
return n;
Code
1
2
3
Record Pair(string Name, int Value);
Pair pair = new("Status", 100);
return pair;
Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
const [typename T : IComparable[T], (Class)] Repository = new(
{
    private () T items = new();
 
    null Function Add(T item)
    {
        items.Add(item);
    }
 
    T Function GetMax()
    {
        if (items.Length == 0)
            return null;
        return Max(items);
    }
});
 
Class Product : IComparable[Product]
{
    int Id;
    int Function CompareTo(Product product)
    {
        return Id.CompareTo(product.Id);
    }
}
 
var repo = new Repository[Product]();
repo.Add(new Product[1]());
repo.Add(new Product[5]());
return repo.GetMax().Id;
Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
using System;
using System.IO;
try
{
    () int list = (1, 2, 3);
    return list.IndexOf(1, 5);
}
catch (ex) if (ex is not ArgumentException)
{
    return 1;
}
catch (ex)
{
    return "" + ex.Message;
}
return 2;
P. S. Можно также скачать из облаков, ссылка на странице версии.
1
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
22.11.2020, 01:26
Ответы с готовыми решениями:

Мелкомягкие мыслят местами точно как и я или следят за моим компьютером и крадут идеи, записанные на нем для C# .NStar?
Кто знает? Вот неполная цитата из файла, созданного в феврале этого года: А тут оказывается, что...

Стал ли .NStar в меньшей степени "сборной солянкой"?
sau, это тема для вас! Хотя обоснованные, не содержащие трёпа и троллинга мнения других...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
523
282 / 485 / 12
Регистрация: 21.06.2019
Сообщений: 3,020
10.02.2025, 13:19
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от Etyuhibosecyu Посмотреть сообщение
никогда не видел, чтобы его название писали в такой мерзкой форме, не приводя сначала настоящее название. Язык тоже, конечно, с особенностями, но разумеется, не такой мерзкий, как "раст".

Я хз что на это ответить
1
59 / 71 / 2
Регистрация: 04.12.2014
Сообщений: 176
10.02.2025, 13:35
Цитата Сообщение от Usaga Посмотреть сообщение
Катафалк, скорее всего речь о ****раст. Матерный синоним слова "голубой".
Я не удивлён, что Коля зациклен на сортирно-половой теме вспоминая его "кисок" и "петухов" в его линейке...
неудивительно, учитывая поломанную психику Николая.
он же тут создавал тему, что ему мама запрещает в девочку переодеваться, ноги отсюда и растут.
0
282 / 485 / 12
Регистрация: 21.06.2019
Сообщений: 3,020
10.02.2025, 13:40
Но докопаться просто до слова "раст" - это вообще какой-то запредельный уровень шизы, конечно.
0
59 / 71 / 2
Регистрация: 04.12.2014
Сообщений: 176
10.02.2025, 13:43
ну так у таких людей зачастую самые безобидные слова могут интерпретироваться в негативном ключе.
0
Эксперт .NET
 Аватар для Rius
13348 / 7804 / 1693
Регистрация: 25.05.2015
Сообщений: 23,765
Записей в блоге: 14
10.02.2025, 13:44
Скайрим кишит великанами, летучими ящерицами и двуногими кошколюдями… а тебя удивляет говорящая собака? Да. Я заговорил. И буду говорить, между прочим
- Барбас. Скайрим.
0
Эксперт .NET
 Аватар для Usaga
14364 / 9465 / 1360
Регистрация: 21.01.2016
Сообщений: 35,692
10.02.2025, 14:47
Цитата Сообщение от Etyuhibosecyu Посмотреть сообщение
чтобы его название писали в такой мерзкой форме, не приводя сначала настоящее название
Остаётся только гадать, что мерзкого в прямой транскрипции "раст" слова "ржавчина" (eng. 'rust')...

Пути поломанной в хламину психики неисповедимы...
0
Software Engineer
 Аватар для Custos
336 / 340 / 55
Регистрация: 23.09.2014
Сообщений: 1,047
10.02.2025, 15:13
Цитата Сообщение от Etyuhibosecyu Посмотреть сообщение
А вам это слово нравится? Никаких "скользких" ассоциаций не вызывает?
Ты б это... Таблеточки попил какие-то что ли...
0
282 / 485 / 12
Регистрация: 21.06.2019
Сообщений: 3,020
10.02.2025, 16:55
Вот так сидит его правительские звания, старается, придумывает новую схему версий, что то программирует даже... И всем пофиг. Но стоило написать всего лишь одно сообщение дичи - и обсуждение на пару страниц тут как тут
0
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7392 / 4819 / 1246
Регистрация: 30.03.2015
Сообщений: 13,696
Записей в блоге: 29
10.02.2025, 20:11
мдее, все ответы его свелись к тому, что я сам должен найти, нагуглить и вычислить, вот это я понимаю документация и подход! а другие Япы почему то это не используют
0
Труд вопреки насмешкам
 Аватар для Etyuhibosecyu
363 / 181 / 41
Регистрация: 13.07.2017
Сообщений: 4,829
Записей в блоге: 14
10.02.2025, 20:13  [ТС]
Цитата Сообщение от Welemir1 Посмотреть сообщение
мдее, все ответы его свелись к тому, что я сам должен найти, нагуглить и вычислить
Неправда, не все ответы, а только один. Остальные вполне прямые.
0
Эксперт .NET
 Аватар для Rius
13348 / 7804 / 1693
Регистрация: 25.05.2015
Сообщений: 23,765
Записей в блоге: 14
10.02.2025, 20:22
Etyuhibosecyu, что там с регистратором?
0
Труд вопреки насмешкам
 Аватар для Etyuhibosecyu
363 / 181 / 41
Регистрация: 13.07.2017
Сообщений: 4,829
Записей в блоге: 14
10.02.2025, 20:25  [ТС]
Rius, получил ответ от этого брокера, в такой ситуации они не могут предоставить домен. Подожду, как вы писали, до 21 февраля, потом посмотрим, что делать дальше.
0
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7392 / 4819 / 1246
Регистрация: 30.03.2015
Сообщений: 13,696
Записей в блоге: 29
10.02.2025, 20:27
Цитата Сообщение от Etyuhibosecyu Посмотреть сообщение
а только один
ровно один по делу, остальные все мимо. Я пользователь, пришедший в документацию нового ЯП, я не собираюсь ходить по википедиям и я не знаю сишарп, а твоя "дока" не дает никаких ответов. Подозреваю, что ты и сам не знаешь их.

Задаю конкретный вопрос - как именно ты проверяешь, что при работе с твоим ЯП стек не используется?

Второй конкретный вопрос - как именно ты проверяешь, что булин у тебя занимает 1 бит памяти?

Третий конкретный вопрос - что значит "почти вся" типизация статическая? А какая не статическая, в каких случаях она не статическая, почему? Я не знаю сишарпа, потому расскажи о своем ЯП
0
Труд вопреки насмешкам
 Аватар для Etyuhibosecyu
363 / 181 / 41
Регистрация: 13.07.2017
Сообщений: 4,829
Записей в блоге: 14
10.02.2025, 20:34  [ТС]
Цитата Сообщение от Welemir1 Посмотреть сообщение
Задаю конкретный вопрос - как именно ты проверяешь, что при работе с твоим ЯП стек не используется?
Конкретный ответ - в настоящее время в текущей версии используется, еще предстоит сделать, чтобы не использовался.
Цитата Сообщение от Welemir1 Посмотреть сообщение
Второй конкретный вопрос - как именно ты проверяешь, что булин у тебя занимает 1 бит памяти?
Класс BitList писал более чем наполовину я, следовательно, я знаю, что занимает в моем классе сколько памяти.
Цитата Сообщение от Welemir1 Посмотреть сообщение
Третий конкретный вопрос - что значит "почти вся" типизация статическая? А какая не статическая, в каких случаях она не статическая, почему?
Не статическая, только если явно указать динамический тип, в остальных случаях статическая.
0
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7392 / 4819 / 1246
Регистрация: 30.03.2015
Сообщений: 13,696
Записей в блоге: 29
10.02.2025, 20:42
Цитата Сообщение от Etyuhibosecyu Посмотреть сообщение
Класс BitList писал более чем наполовину я, следовательно, я знаю, что занимает в моем классе сколько памяти.
да неужели? на глазок? конкретные инструменты есть для измерения? Сколько памяти занимает пустой битлист? Сколько памяти занимает битлист с 1 значением?

Цитата Сообщение от Etyuhibosecyu Посмотреть сообщение
в настоящее время в текущей версии используется, еще предстоит сделать, чтобы не использовался.
не ври! в доке мне сказали "в принципе нет стека"

Цитата Сообщение от Etyuhibosecyu Посмотреть сообщение
указать динамический тип
о, интересно! покажи пример применения динамического типа или дай ссылку на документацию, где такой пример есть
0
Труд вопреки насмешкам
 Аватар для Etyuhibosecyu
363 / 181 / 41
Регистрация: 13.07.2017
Сообщений: 4,829
Записей в блоге: 14
10.02.2025, 20:49  [ТС]
Цитата Сообщение от Welemir1 Посмотреть сообщение
Сколько памяти занимает пустой битлист? Сколько памяти занимает битлист с 1 значением?
Разумеется, если пустой или с одним значением, то проверка нерепрезентативна. Вот с миллиардом значений - специально для вас проверю.
Цитата Сообщение от Welemir1 Посмотреть сообщение
не ври! в доке мне сказали "в принципе нет стека"
Не в "доке", а в разделе "Наш стиль". Стиль - это общая логика, система в целом, если хотите, "философия" языка, а не то, что работает в настоящее время. К документации это не имеет никакого отношения. Ссылка на документацию внизу страницы.
Цитата Сообщение от Welemir1 Посмотреть сообщение
о, интересно! покажи пример применения динамического типа или дай ссылку на документацию, где такой пример есть
Это не быстро, при случае покажу.
0
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7392 / 4819 / 1246
Регистрация: 30.03.2015
Сообщений: 13,696
Записей в блоге: 29
10.02.2025, 21:07
Цитата Сообщение от Etyuhibosecyu Посмотреть сообщение
Стиль - это общая логика, система в целом, если хотите, "философия" языка, а не то, что работает в настоящее время.

так дай ссылку на доку, мне интересен раздел о памяти - стек, куча, сколько занимают в памяти объекты и примитивы.

Цитата Сообщение от Etyuhibosecyu Посмотреть сообщение
если пустой или с одним значением, то проверка нерепрезентативна.
о, позволь мне судить, начни именно с пустого и с 1 значением.
0
Труд вопреки насмешкам
 Аватар для Etyuhibosecyu
363 / 181 / 41
Регистрация: 13.07.2017
Сообщений: 4,829
Записей в блоге: 14
10.02.2025, 21:13  [ТС]
Цитата Сообщение от Welemir1 Посмотреть сообщение
так дай ссылку на доку, мне интересен раздел о памяти - стек, куча, сколько занимают в памяти объекты и примитивы.
=>
Цитата Сообщение от Etyuhibosecyu Посмотреть сообщение
Ссылка на документацию внизу страницы.
Там и типы, и много чего другого.
Цитата Сообщение от Welemir1 Посмотреть сообщение
о, позволь мне судить, начни именно с пустого и с 1 значением.
В коллекции с одним значением намного больше места займут длина, емкость и другие поля, чем это значение.
0
Модератор
Эксперт Java
 Аватар для alecss131
2892 / 1398 / 412
Регистрация: 11.08.2017
Сообщений: 4,479
Записей в блоге: 2
10.02.2025, 21:22
Вот с чем с чем, но с ТС по поводу ржавчины согласен на 100%
0
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7392 / 4819 / 1246
Регистрация: 30.03.2015
Сообщений: 13,696
Записей в блоге: 29
11.02.2025, 07:19
Цитата Сообщение от Etyuhibosecyu Посмотреть сообщение
Там и типы, и много чего другого.
понял, ответа не знаешь, раздела про память нет, ок

Цитата Сообщение от Etyuhibosecyu Посмотреть сообщение
В коллекции с одним значением намного больше места займут длина, емкость и другие поля, чем это значение.
вот те и раз... то есть булин занимает 1 бит, но структура в которой он хранится гораздо больше? или как? если я сниму дамп памяти и потом создам 8 булинов то память увеличится ровно на 1 байт?

Добавлено через 1 минуту
кстати, если огрызаться и не отвечать на конкретные вопросы то это точно привлечет к тебе людей и новых пользователей...а , нет, погодите ка...наоборот!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Ответ Создать тему
Новые блоги и статьи
интеграция AnyLogic с самописным REST API и переход на Odoo
anaschu 03.07.2026
Успешная интеграция AnyLogic с самописным REST API и переход на промышленную Odoo WMS Сегодня проделал огромный путь от простой симуляции физических процессов до построения полноценной. . .
Поиск всех путей на ориентированном графе. Linux
dcc0 02.07.2026
Переработка старого кода из моей статьи. Через несколько переработок от PHP кода к C89 (надеюсь, 89). Но довольно запутанно получилось. Код для Linux. Но если убрать time и то, что с ним. . .
Сам себя обучал rest api
anaschu 02.07.2026
Педагогический лайфхак: Почему чистый REST API для ученика намного круче, чем готовые библиотеки Когда мы отказались от капризного JAR-файла AnyLogic и переписали код на стандартный HttpClient,. . .
rest api anylogic - выполнение модели на своём русском сайте
anaschu 02.07.2026
Как подружиться с AnyLogic Cloud API, победить провайдеров и развернуться Java-бэкенд в Docker на бесплатном хостинге: Двухдневный лог борьбы Всем привет! Хочу поделиться свежим (и довольно. . .
Где деньги лежат
kumehtar 02.07.2026
Это - японская подводная лодка I-52 (тип C2, кодовое имя Momi) вышла из Японии в марте 1944 года с миссией в оккупированную немцами Францию (Лорьян). Это была одна из «Янаги»-миссий по обмену. . .
Krabik для WoW 3.3.5a, многоязычный
AmbA 02.07.2026
Допилил бота, думаю что окончательно. Изменения: - добавлена многоязычность - добавлено снятие скриншотов - добавлено поддержание бафов хождения по воде (для жреца, дк и шамана) - и так, по. . .
Алиса нашла кучу ошибок компиляции и запуска в проекте, который без проблем компилировался и запускался)))
anaschu 30.06.2026
Я пока посмеюся, но завтра проверю. А вообще интерсно. Дал алисе файл, в котором точно нет ошибок компиляции и запуска, и попросил их найти. Нашла кучу))) Критические ошибки, мешающие компиляции и. . .
сукцессия 16. Общий обзор, в основном что бы другие ии поняли
anaschu 29.06.2026
# Передаточный документ: модель микоризной сукцессии (для нового чата) Этот документ предназначен для того, чтобы новый чат Claude мог продолжить работу без необходимости заново разбираться в. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru