Size: a a a

2021 March 21

MZ

Mikhail Zhuravlev in Haskell Start
А отрицательные числа невыразимы получается, ну только если не принять отрицательное число за Zero.
источник

MZ

Mikhail Zhuravlev in Haskell Start
Elijah
Просто хочу убедиться что я правильно понял и там ачипятка
Да, опечатка, ну все же поняли, о чем речь 😊
источник

E

Elijah in Haskell Start
Ну вдруг я только думаю что понял
источник

t

toriningen in Haskell Start
Mikhail Zhuravlev
А отрицательные числа невыразимы получается, ну только если не принять отрицательное число за Zero.
Можно считать, что числа идут как 0 1 -1 2 -2 3 -3 4 -4, тогда выразимы 🙂
источник

AL

Alexander Luzgarev in Haskell Start
Mikhail Zhuravlev
А отрицательные числа невыразимы получается, ну только если не принять отрицательное число за Zero.
Отрицательные числа не натуральные, получается
источник

MZ

Mikhail Zhuravlev in Haskell Start
Не натуральные, да.
источник

MZ

Mikhail Zhuravlev in Haskell Start
toriningen
Можно считать, что числа идут как 0 1 -1 2 -2 3 -3 4 -4, тогда выразимы 🙂
А как abs сделать тогда?
источник

WB

White Bear in Haskell Start
Есть мнение что 0 тоже не натуральное число
источник

MZ

Mikhail Zhuravlev in Haskell Start
Numeric.Natural тоже так считает
источник

t

toriningen in Haskell Start
Mikhail Zhuravlev
А как abs сделать тогда?
окей, тогда можно вот так https://en.wikipedia.org/wiki/Church_encoding#Signed_numbers
источник

MZ

Mikhail Zhuravlev in Haskell Start
Извините, имел в виду не считает. Если натуральные числа это которые используются при счёте, то как иначе считать, если не с нуля. Не знаю историю, почему массивы нумеруются с нуля, но логично было бы предположить, чтобы не отнимать единицу при умножении на длину элемента. Для связанных списков получается без разницы.
источник

t

toriningen in Haskell Start
ну как минимум в других языках на заре времен индекс массива являлся сдвигом от начала
источник

t

toriningen in Haskell Start
поэтому 0 - сдвиг отсутствует, 1 - на один элемент вперед, -1 - на один элемент назад
источник

MZ

Mikhail Zhuravlev in Haskell Start
toriningen
ну как минимум в других языках на заре времен индекс массива являлся сдвигом от начала
Это во всех языках где есть массивы, которые области памяти выделенные под элементы одного размера, и arr[i] это сахар *(arr + i * sizeof элемента). Но -1 это выход за пределы массива.
источник

WB

White Bear in Haskell Start
Советская школа и математика 0 натуральным числом не считает
источник

t

toriningen in Haskell Start
Mikhail Zhuravlev
Это во всех языках где есть массивы, которые области памяти выделенные под элементы одного размера, и arr[i] это сахар *(arr + i * sizeof элемента). Но -1 это выход за пределы массива.
это не всегда выход, т.к. в ряде мерзких императивных языков до недавнего времени массивы не имели никакой дополнительной семантики по сравнению с сырыми указателями на начало региона. поэтому можно спокойно увеличить указатель, а потом откатиться назад через отрицательные индексы. контроль за невыходом за границы лежит на программисте в любом случае - выйти за границы можно и при индексировании вперед.
источник

t

toriningen in Haskell Start
другими словами, arr+=2 это то же самое, что и arr=&arr[2]
источник

AL

Alexander Luzgarev in Haskell Start
White Bear
Есть мнение что 0 тоже не натуральное число
0, разумеется, натуральное
источник

JS

Jerzy Syrowiecki in Haskell Start
Alexander Luzgarev
0, разумеется, натуральное
ничего такого не разумеется, посмотрите определения
источник

AL

Alexander Luzgarev in Haskell Start
Меня в школе учили что натуральные числа это мощности конечных множеств
источник