Как стать автором
Обновить

Комментарии 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, у всех верхняя граница диапазона НЕ включается.

Но самое главное даже не в этом.

Попробуйте сделать диапазон не для целых, а для вещественных чисел. У вас почти никогда не будет включаться верхняя граница из-за ошибок округления.

почти никогда

Ну, это ведь будет в обеих реализациях?..

Как раз нет. Если верхнюю границу включать, то для целочисленной арифметики она всегда будет входить в список значений, а для вещественных почти никогда НЕ будет входить.

Поэтому корректнее не включать верхнюю границу, чтобы поведение диапазонов было одинаковым для всех типов чисел.

Ну уж простите, пожалуйста, за то, что тут нельзя удалить комментарий, оставленный не в том треде. Но минусовать карму за удаление дублирующегося текста — это вах!..

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации