Size: a a a

Теория категорий

2019 November 21

t

toriningen in Теория категорий
Valery
тип функции известен статически. если функция не завершается, то она _возвращает_ значение ⊥, но тип у нее не меняется, он фиксирован
тогда почему говорится, что у bottom-типа нет значений?
источник

t

toriningen in Теория категорий
мне казалось, что эту часть я как раз понимаю, но похоже не совсем 🙂
источник

V

Valery in Теория категорий
toriningen
тогда почему говорится, что у bottom-типа нет значений?
возможно это просто clash нотации
источник

V

Valery in Теория категорий
этим символом обозначают и значение, и тип
источник

t

toriningen in Теория категорий
если бы у типа ⊥ было бы значение ⊥, то он был бы юнит-типом
источник

t

toriningen in Теория категорий
разве не так?
источник

V

Valery in Теория категорий
в хаскелле у всех типов как бы есть значение, и это bottom
источник

V

Valery in Теория категорий
поэтому пустой тип в хаскелле по факту и является терминальным (т.е. в него из любого другого есть уникальная функция)
источник

t

toriningen in Теория категорий
ну и да, если функция не завершается, она не может совсем ничего вернуть?
источник

t

toriningen in Теория категорий
в том плане, что раз она не завершилась (исключение или вечный цикл), то у нее строго говоря нет результата
источник

V

Valery in Теория категорий
обычно говорят, что она возвращает bottom, но это всего лишь удобный способ думать о таких функциях, это не означает, что функция буквально возвращает какое-то значение
источник

V

Valery in Теория категорий
по факту bottom и не является настоящим значением, которое функция может _реально_ вернуть
источник

V

Valery in Теория категорий
но слова "значение" и "вернуть" можно использовать в более широком смысле
источник

V

Valery in Теория категорий
и в контексте хаскелля так часто делают, называя bottom значением
источник

t

toriningen in Теория категорий
я понял, спасибо за объяснение
источник
2019 November 22

YS

Yuriy Syrovetskiy in Теория категорий
toriningen
разбираюсь в основах, читаю Бартоша. Есть задание для самопроверки

5. How many different functions are there from Bool to Bool? Can you implement them all?

верно ли я понимаю, что 4? т.к. подразумеваются только чистые функции, то фактически это может быть только T->T, T->F, F->T, F->F, независимо от того, что и как они делают - результатирующих уникальных функций будет четыре?
тотальных 4, но вы их неправильно перечисляете

F->F, T->F
F->F, T->T
F->T, T->F
F->T, T->T
источник

Oℕ

Oleg ℕizhnik in Теория категорий
Кто-то должен извиниться за ошибку в миллиард долларов за изобретение боттом значений
источник

KV

Kirill Valyavin in Теория категорий
Oleg ℕizhnik
Кто-то должен извиниться за ошибку в миллиард долларов за изобретение боттом значений
Дана Скотт?
источник

МБ

Михаил Бахтерев in Теория категорий
Oleg ℕizhnik
Кто-то должен извиниться за ошибку в миллиард долларов за изобретение боттом значений
А как ещё можно описать частично определённые функции?

Функция же определяется по процедуре, которую задаёт выражение в Haskell. И для определения функции (как функции) bottom - естественная и плодотвторная идея.

Есть просто стандартная путаница в понятиях. Функция в Haskell или в Си - это совсем не функция. Точнее, функция, но совсем не в тех множествах, в которых кажется программисту
источник

Oℕ

Oleg ℕizhnik in Теория категорий
Частично определённые вычислимые функции известно как описать.
Достаточно функтора 1 + - или Error + -
Процедуры в тюринг-полных ЯП не знаю как описать. Может быть на уровне простого теорката и не нужно никак описывать
источник