fixfix
2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




Начать новую тему Ответить на тему На страницу Пред.  1, 2, 3, 4, 5, 6, 7  След.
 
 Re: Теория категорий, Haskell и программирование вообще
Сообщение20.02.2019, 18:50 


16/02/15
124

(Оффтоп)


 Профиль  
                  
 
 Re: Теория категорий, Haskell и программирование вообще
Сообщение20.02.2019, 21:20 
Заслуженный участник


27/04/09
28128

(Оффтоп)


 Профиль  
                  
 
 Re: Теория категорий, Haskell и программирование вообще
Сообщение21.02.2019, 01:23 


16/02/15
124

(Оффтоп)


 Профиль  
                  
 
 Re: Теория категорий, Haskell и программирование вообще
Сообщение21.02.2019, 05:53 


05/09/12
2587

(Оффтоп)


 Профиль  
                  
 
 Re: Теория категорий, Haskell и программирование вообще
Сообщение21.02.2019, 09:21 
Заслуженный участник
Аватара пользователя


06/10/08
6422

(Оффтоп)


 Профиль  
                  
 
 Re: Теория категорий, Haskell и программирование вообще
Сообщение21.02.2019, 10:15 
Заслуженный участник


27/04/09
28128

(Оффтоп)


 Профиль  
                  
 
 Re: Теория категорий, Haskell и программирование вообще
Сообщение21.02.2019, 13:58 


16/02/15
124

(Оффтоп)


 Профиль  
                  
 
 Re: Теория категорий, Haskell и программирование вообще
Сообщение21.02.2019, 14:27 
Заслуженный участник


27/04/09
28128

(Оффтоп)


 Профиль  
                  
 
 Re: Теория категорий, Haskell и программирование вообще
Сообщение21.02.2019, 20:27 
Заслуженный участник


02/08/11
7074

(Оффтоп)


 Профиль  
                  
 
 Re: Теория категорий, Haskell и программирование вообще
Сообщение21.02.2019, 22:09 
Заслуженный участник
Аватара пользователя


30/01/06
72407
warlock66613 в сообщении #1377602 писал(а):
Только по потреблению памяти и времени работы, а это уже за пределами языковой семантики.

Тонкий вопрос. Например, в C++ принято давать некоторые гарантии на уровне описания языка и библиотеки.

 Профиль  
                  
 
 Re: Теория категорий, Haskell и программирование вообще
Сообщение21.02.2019, 22:45 
Заслуженный участник


27/04/09
28128
Если слишком заспецифицировать язык в этом отношении, может получиться, что нельзя использовать rewrite rules, а это очень важная вещь, с помощью которой например реализуется stream fusion, позволяющее не выделять память под временные списки, порождаемые и разбираемые определёнными функциями, которыми очень часто как раз и пользуются. Именно потому что они могут сильно менять такие параметры — время работы тоже. (Правда написанием своих таких правил можно сломать все гарантии и семантики тоже, но обычно используют их только в хорошо проработанных пакетах.) Потому иногда довольно непрозрачный вопрос, чему быть в спецификации, а чему быть в фольклоре.

 Профиль  
                  
 
 Re: Теория категорий, Haskell и программирование вообще
Сообщение21.02.2019, 23:54 
Заслуженный участник
Аватара пользователя


28/07/09
1238
warlock66613 в сообщении #1376832 писал(а):
Ещё (почти) пример "применения". Типы данных в Haskell образуют категорию $\operatorname{Hask}$, где морфизмами являются функции. На интуитивном уровне эта категория похожа на категорию множеств, и именно так она воспринимается при программировании. Но строго говоря это не категория множеств, и, наверное, теория категорий может cказать каково отношение между этими категориями, благодаря чему мы можем успешно считать типы Haskell множествами, а функции - функциями между множествами.


Кстати, Hask не является категорией, из-за наличия в языке seq и bottom нарушается свойство $f \circ id = f$

-- Пт фев 22, 2019 00:00:40 --

Munin в сообщении #1377616 писал(а):
Тонкий вопрос. Например, в C++ принято давать некоторые гарантии на уровне описания языка и библиотеки.

А можно пример того, о чём идёт речь?

 Профиль  
                  
 
 Re: Теория категорий, Haskell и программирование вообще
Сообщение22.02.2019, 02:56 
Заслуженный участник
Аватара пользователя


30/01/06
72407
Legioner93 в сообщении #1377641 писал(а):
А можно пример того, о чём идёт речь?

Ну например, время доступа в vector<> не более чем константа по числу членов, а время доступа в list<> не более чем линейно. Кажется, оверхед по памяти для POD не более чем линеен по полезному объёму, а оверхед за виртуальные методы - не более чем константа (если нет виртуальных базовых классов).

 Профиль  
                  
 
 Re: Теория категорий, Haskell и программирование вообще
Сообщение22.02.2019, 10:27 
Заслуженный участник


02/08/11
7074
Legioner93, ну выкинуть seq (из рассмотрения). Я и без таких строгих аргументов чувствовал, что эта "функция" - грязный хак.

 Профиль  
                  
 
 Re: Теория категорий, Haskell и программирование вообще
Сообщение22.02.2019, 12:29 


16/02/15
124

(Оффтоп)



-- 22.02.2019, 13:31 --

(Оффтоп)



-- 22.02.2019, 13:36 --

Legioner93 в сообщении #1377641 писал(а):
Кстати, Hask не является категорией, из-за наличия в языке seq и bottom нарушается свойство $f \circ id = f$

Авторы языка не рекомендуют рассматривать его составляющие с точки зрения теории категорий. В смысле они рекомендуют рассматривать всё просто как некие структуры данных и способы их обработки, без привлечения дополнительных абстракций. Но вот сами же описывают язык с привлечением понятий bottom и т.д.

Вообще успех хаскеля в математических кругах во многом обязан именно максимальной его близостью к математическим абстракциям, и при этом ещё и практической применимостью (в отличии от кучи эзотерических языков).

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 92 ]  На страницу Пред.  1, 2, 3, 4, 5, 6, 7  След.

Модераторы: Karan, Toucan, PAV, maxal, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group