Комментарии 22
В текстах на сайте проекта - очень много опечаток, чем больше читаешь, тем больше хочется забросить.
А есть примеры коротких практических программ с использованием тензоров ?
Каюсь, мне тройки по русскому языку в школе ставили наверно из жалости :-). И если вы сможете помочь вычитать, буду вам премного благодарен.
Простые примеры с тензорами есть: https://newlang.net/types.html#явное-приведение-типов
Но если нужны примеры с обучением нейросетей, то это задача только следующего релиза.
простой, логичный и не противоречивый синтаксис
…
[mult?!] <<-->> {
Имхо, что-то пошло не так.
Смущает оператор цикла или получение текущего значения итератора?
Ну, меня лично смущает сложность, нелогичность и множество ненужных спецсимволов. А так да, простой, логичный и не противоречивый синтаксис
А так да, простой, логичный и не противоречивый синтаксис
И это действительно так. Сейчас готовлю отдельную статью с проблематикой сложных синтаксисов у языков программирования и даже уже немного писал на эту тему https://habr.com/ru/company/timeweb/blog/551754/
Сразу же захотелось распечатать число π с неограниченной точностью.
На уровне базового синтаксиса поддерживается фильтрация данный, включая функциональный аналог LINQ за счет применения функций обратного вызова в качестве условия фильтра.
А есть примеры?
Пример работы с итераторами описан тут https://newlang.net/iterators.html. Там есть пара примеров с созданием фильтра по имени поля или с помощью функции обратного вызова.
Так же можно посмотреть код в юнит тестах (ищите строку "TEST(Eval, Iterator)" примерно 1000 строка), а сама реализация в файле https://github.com/rsashka/newlang/blob/master/src/object.h, функция CompareFuncDefault в шаблоне Iterator.
1000..1..-1?; # Сделать из диапазона итератор для множителей от 1000 до 2
логичный
Ну да, диапазон от 1000 до 1 (не включая) с шагом -1, а знак вопроса, это оператор создания итератора.
Вот "не включая" — очень логичная часть, разве нет? Если мне нужен диапазон из одного числа — я же так и напишу: "1..2", "логично"...
Кхм... да, логично, так сделано и в других языках программирования, т.е. не включая вторую границу диапазона.
Уточните, пожалуйста, в каких. А то я пока только Python нашёл:
>>> for n in range(1,3): print(n)
...
1
2
И в противовес ему - seq
$ seq 1 3
1
2
3
и PHP:
$ php -r 'print_r(range(1,3));'
Array
(
[0] => 1
[1] => 2
[2] => 3
)
Я ориентировался на самый распространенный язык, а так же библиотеки torch, numpy и tensorflow, у всех верхняя граница диапазона НЕ включается.
Но самое главное даже не в этом.
Попробуйте сделать диапазон не для целых, а для вещественных чисел. У вас почти никогда не будет включаться верхняя граница из-за ошибок округления.
почти никогда
Ну, это ведь будет в обеих реализациях?..
Релиз языка программирования NewLang 0.2