@frp_ru

Страница 112 из 420
Denis
22.07.2017
22:03:00
это самый простой NT что не создает никаких эффектов

ну это уже программистское

а T2 -> T вроде категорное

kana
22.07.2017
22:03:46
Не, именно в статье по тк я это и видел)

Google
kana
22.07.2017
22:04:01
Там было f, не m, не суть

Типа F²(a) -> F(a)

Ну в общем использование верхнего индекса мне понравилось

Denis
22.07.2017
22:06:07
но самое интересное это функтор с функторной алгеброй

kana
22.07.2017
22:06:22
а вот эти 2 1 -> T, T2 -> T` дают возможность функтору стать монадой
Но постой, я не понимаю, при чем тут функтор вообще

Denis
22.07.2017
22:06:33
где для A есть такой морфизм a :: F(A) -> A

у нас есть простой вид A -> B

и есть F A -> F B

или же h :: A -> B F h :: F A -> F B



kana
22.07.2017
22:08:00
Да, я знаю, что такое функтор)

Denis
22.07.2017
22:08:42
и есть a :: F A -> A, b :: F B -> B

Google
kana
22.07.2017
22:08:58
Я не у тому. Наличие тех двух морфизмов делают любую категорию монадой, независимо от того, функтор это или нет

Denis
22.07.2017
22:09:16
теперь можно вывести по коммутативной диаграмме такое h . a = b . F h

f :: F A -> A

это алгебра

f :: A -> F A

это коалгебра

наверное ты знаешь что такое fix

kana
22.07.2017
22:11:36
Для поиска неподвижной точки?

Denis
22.07.2017
22:11:53
ну да это мат понятие где x = f x

как бы на одной точке крутимся

что дает нам писать неявную рекурсию

ну так вот

такая же фигня и для типов возможна

fix f = f(fix f)

kana
22.07.2017
22:13:14
Ну я недавно читал про фри-монаду, там было что-то пободное

Denis
22.07.2017
22:13:21
это стандарт

да

Free монада похожа на Fix просто у Free есть еще доп инфа в виде Pure

но не суть)

продолжим?

Google
kana
22.07.2017
22:14:27
Да, давай, я все равно нихуя не понимаю)

Denis
22.07.2017
22:15:12
наверное ты знаешь что любую структуры можно представить алгебраически

kana
22.07.2017
22:15:30
Предполагал, да)

Denis
22.07.2017
22:15:41
думаю ща ты угадаешь что это

l = 1 + a + a^2 + a^3...

это индуктивный тип

kana
22.07.2017
22:16:48
Ну на всякий случай скажу, что я не угадал

Индуктивный в каком плане?

И в смысле тип?

Denis
22.07.2017
22:17:22
спискок это

индуктивный это рекурсивный

kana
22.07.2017
22:17:41
Типа рекурсивный тип?

kana
22.07.2017
22:17:42
Да

Вот

Denis
22.07.2017
22:17:47
есть еще корекурсивный но не об этом ща

думаю знаешь что такое мат индукция?

kana
22.07.2017
22:18:05
Да

Denis
22.07.2017
22:18:08
доказывал что-то через мат индукцию

kana
22.07.2017
22:18:31
Да, но мелочь

Доказать для 1, доказать для n+1

Google
Denis
22.07.2017
22:18:50
ну так вернемся) l = 1 + a + a^2 + a^3 + ... l = 1 + a * (1 + a + a^2 + ...)

дальше надо унифицировать)

это ряд Тейлора)

запиши математически его

kana
22.07.2017
22:19:53
Давай лучше ты, потому что я слышу такой термин впервые)

Denis
22.07.2017
22:20:13
l = 1 + a * l

kana
22.07.2017
22:20:25
l = 1 + a * l

Denis
22.07.2017
22:20:25
теперь видишь почему это индуктивный тип?

kana
22.07.2017
22:20:28
Почти

Denis
22.07.2017
22:20:36
тут что-то скрыто)

Admin
ERROR: S client not available

kana
22.07.2017
22:20:37
А, не пояти

Я смог

Азахаха

Denis
22.07.2017
22:21:11
вспомни что я писал про x = f x

давай запишем так l = (\x -> 1 + a * x) l

kana
22.07.2017
22:21:36
Стой, прежде чем это делать

Я не очент понимаю связь рекурсии и неподвижной точки

А, вот теперь понял

Denis
22.07.2017
22:22:22
ну это почитай про комбинатор неподвижной точки Y придуманый Карри

Google
Denis
22.07.2017
22:22:38
его бетта редукция будет приводить к нему же

kana
22.07.2017
22:22:41
f x = 1 + a * x

Denis
22.07.2017
22:22:46
продолжим?)

не

kana
22.07.2017
22:22:51
l = f l

Denis
22.07.2017
22:22:57
о!

а у нас есть для этого вещица одна

l a = fix(\x -> 1 + a * x)

как можно заметить то \x -> 1 + a * x

давай теперь попробуем записать через тип это

data List a b = Nil | Cons a b

это простой тип суммы/произведения

не индуктивный

теперь fix

для функции мы знаем как это сделать

kana
22.07.2017
22:26:10
И b - List a b

Denis
22.07.2017
22:26:59
чтобы было понятней l a b = fix(\x -> 1 + a * x) b просто тут эта преобразование

kana
22.07.2017
22:27:35
Ага

Denis
22.07.2017
22:27:41
fix f = f (fix f) newtype Fix f = Fix { unFix :: f(Fix f) }

похоже?)

kana
22.07.2017
22:27:59
Ну

Denis
22.07.2017
22:28:11
так

теперь мы знаем что мы можем выражать индуктивный типы через простые

Страница 112 из 420