
Denis
14.05.2017
20:33:58
Rx в Haskell не надо)
там свой зоопарк)

Pig
14.05.2017
20:34:53
(Ахаха, тут можно просто отправлять сообщения себе.)

Denis
14.05.2017
20:35:38
интересно, что Bifunctor есть более правильная абстракция чем Arrow, то значит более правильно делать не AFRP, а BFRP

Google

Denis
14.05.2017
20:38:18
я кидал? https://github.com/xgrommx/practical-functional-programming может кому-то пригодится) (хочу дополнить еще больше монадами, трансформерами, зипперами и может портирую рекурсивные схемы)
аахах @Ai_boy я помню как-то слушал твой доклад про SOLID (я не любил и не люблю эту кашу из OOP слишком оно не естественно) Все должно быть естественно как в математике
Объекты
Законы
Операторы
Так в FP
вот например это https://github.com/xgrommx/practical-functional-programming/blob/master/combinators/index.js есть изоморфизм логике высказываний

Алексей
14.05.2017
20:43:23

Denis
14.05.2017
20:43:36
нельзя
нет строгих законов
если ты сделаешь ADT и сделаешь монадой, то есть законы которые автоматически будут соблюдаться
в классе не так
ну и ТК это общая абстракция абстракций
Эрик очень крутой тип
а особенно его труд про рекурсивные схемы
монадный парсер
ну и еще дофига чего

Google

Denis
14.05.2017
20:45:52
http://dblp.uni-trier.de/pers/hd/m/Meijer:Erik
в теории конечно можно все, в практике нет
будут костыли на костылях
это про обзервабл))

Алексей
14.05.2017
20:52:25
Эрик очень крутой тип
Он гдето расказывал что есть кто-то раскалывал OOP в терминах CT - правда не говорил источник :/

Denis
14.05.2017
20:52:49
это глупое занятие))
для того чтобы это делать нужно иметь изоморфизм
а какой изоморфизм в OOP?
если не обращать внимание на нерешимость то Hask есть малая категория, потому что морфизмы образуют множество (множество функциональных стрелок)
или грубо это категория Set


Алексей
14.05.2017
21:01:57
а какой изоморфизм в OOP?
Я не иммею ввиду что можно текущие языки выразить в рамках CT но вообще мне кажется это возможно. ( я очень сильно могу быть не прав )
https://cstheory.stackexchange.com/a/33606
Zinovy Diskin's Mathematics of UML.
... Now back to OOP, there is no formalization of OOP.
Interestingly, the second OO language ever created, Smalltalk, only has objects, it doesn't have primitives or anything like that. And the creator, Alan Kay, explicitly created blocks to work exactly as Lisp functions.
Some people claim OOP could maybe be formalized using category theory, which is kind of set theory but with morphisms. A morphism is a structure preserving map between objects. So in general you could have map( f, collection ) and get back a collection with all elements being f applied.
I'm pretty sure Lisp has that, but Lisp also has functions that return one element in a collection, that destroys the structure, so a morphism is a especial kind of function and because of that, you would need to reduce and limit the functions in Lisp so that they are all morphisms.
https://www.youtube.com/watch?feature=player_detailpage&v=o6L6XeNdd_k#t=250
The main problem with this is that functions don't exist independently of objects in OOP, but in category theory they do. They are therefore incompatible. You could develop a new language in which to express category theory.
An experimental theoretical language created explicitly to try to formalize OOP is Z. Z is derived from requirements formalism.
Another attempt is Luca Cardelli's formalism:
Java
http://lucacardelli.name/Papers/PrimObjImp.pdf
http://lucacardelli.name/Papers/PrimObj1stOrder.A4.pdf
http://lucacardelli.name/Papers/PrimObjSemLICS.A4.pdf
I'm unable to read and understand that notation. It seems like a useless excercise, since as far as I know, no one has ever implemented this the way lamba calculus was implemented in Lisp.


Denis
14.05.2017
21:12:48
больные люди

Алексей
14.05.2017
21:13:03
:D

Denis
14.05.2017
21:13:35
ну ни у жабы ни у других нет системы вывода типов

Алексей
14.05.2017
21:15:08

Google

Denis
14.05.2017
21:15:44
я имею ввиду Хиндли-Милнера и его модификации
System F

Aleh
14.05.2017
21:16:34
так эт, про формализацию ж логика хоара, просто вычисление всех проверок в этой системе NP сложная задача
про формализацию ооп

Denis
14.05.2017
21:16:57
ооп мне кажется трудно формализовать
у ФП с этим проще

Aleh
14.05.2017
21:17:03
ну мэйрс делал
и опять же, логика хоара, из нее можно даже принципы solid формально вывести)

Алексей
14.05.2017
21:17:18

Aleh
14.05.2017
21:17:27
Бертран Мейерс
никто его не читал
но все говорят

Denis
14.05.2017
21:17:35
это как впихнуть не впихуемое

Aleh
14.05.2017
21:17:37
я тож не читал)
просто в текущих "ооп" языках много структурного мусора
которое плохо типизируется

Denis
14.05.2017
21:18:58
самый натуральный OOP в smalltalk или как его там

Aleh
14.05.2017
21:19:21
ну да, если почитать алана кея, то он делая смолток хотел сделать ерланг)

Denis
14.05.2017
21:19:46
но мне все это ООП не интересно =)

Aleh
14.05.2017
21:20:15
да интерес не столько ооп или не ооп, а дешевая разработка корректных приложух)

Google

Aleh
14.05.2017
21:20:24
при этом не убиться порогом входа

Алексей
14.05.2017
21:20:40

Denis
14.05.2017
21:20:52
просто смешно все эти паттерны их просто дохера (у меня даже книга толще чем книга по хаскеллю по паттернам)
хотя в хаскелль http://blog.ezyang.com/2010/05/design-patterns-in-haskel/

Aleh
14.05.2017
21:21:14
много людей, много людей без спец. образования
куча приложений
надо простым языком всем объяснить что делать
если бы внезапно фп стало меинстримом, плавали бы в таком же говне)

Admin
ERROR: S client not available

Denis
14.05.2017
21:22:14
извините, но современное айти дно какое-то) Каждый считает себе супер разрабом а структуры данных и алгоритмы даже не читал

Aleh
14.05.2017
21:22:34
так да, потому что эти знания большинство потом не использует
я даже не буду говорить про какой-нибудь фан или просто че-нибудь про множества

Алексей
14.05.2017
21:23:46

Denis
14.05.2017
21:24:07
есть же Кормен, проще Кнута
есть Берд (про фп)
Для многих осознать что DOM это дерево розовых кустов и все крутые алгоритмы и свертки уже известы - это тяжело

Aleh
14.05.2017
21:25:30
так и особо не нужно)

Denis
14.05.2017
21:26:09
пожалуй я покину этот канал)
злые тут

Google

Aleh
14.05.2017
21:29:09
тут наоборот добрые, злые в чатике жавы

Denis
14.05.2017
21:29:25
я java не люблю

Aleh
14.05.2017
21:29:30
а кто любит?)

Denis
14.05.2017
21:29:30
лучше уж kotlin
ну и ща там etalang развивается)

Aleh
14.05.2017
21:33:00
а пониланг как?

Denis
14.05.2017
21:33:11
что это такое?

Aleh
14.05.2017
21:33:19
https://www.ponylang.org/

Алексей
14.05.2017
21:34:21

Aleh
14.05.2017
21:34:32
ну риал ж лучше жавы

Denis
14.05.2017
21:34:34
проще скалы, лучше жабы
а пониланг не FP
мы тут только такое обсуждаем =)

Aleh
14.05.2017
21:35:11
тут есть RP, чтобы оно не значило))

Denis
14.05.2017
21:35:25
Actor?

Aleh
14.05.2017
21:35:32
там как раз про это)

Denis
14.05.2017
21:35:50
актор больше про паттерн медиатор + стримы

Aleh
14.05.2017
21:35:56
ну там на уровне языка

Denis
14.05.2017
21:37:36
кстати для любителей .net http://elalang.net/
https://ela.codeplex.com/wikipage?title=Ela%20and%20Haskell&referringTitle=Documentation

Дмитрий
14.05.2017
21:40:36
Пришли со своей джавой в фп канал ?

Aleh
14.05.2017
21:42:24