@frp_ru

Страница 176 из 420
Kelin
25.09.2017
18:46:34
Ну потому что это пиздец Некоторые моменты жутко неудобные + lodash/fp по-тупому срет в бандл

Дмитрий
25.09.2017
18:46:51
Ага

Kelin
25.09.2017
18:47:12
сколько методов ни подключи, все равно тянет все (именно фп-версия)

Gleb
25.09.2017
18:47:15
Там есть рекомендации чтобы не срал

Google
Kelin
25.09.2017
18:47:24
кажется тебе с самого начала рекомендовали не раскапывать лодаш фп
та я знаю, но я уже начал, думал обойтись малой кровью

Там есть рекомендации чтобы не срал
плагины для вебпака итд все равно не помогают

там огромный кусок подгружается, который походу обычный лодаш тянет или я хз

Дмитрий
25.09.2017
18:49:09
Kelin
25.09.2017
18:50:19


illiatshurotshka❄️
25.09.2017
18:53:52
красиво

Kelin
25.09.2017
18:55:19
Да

По итогу метод, который весит 2кб, все равно лишних 20 срет

Kelin
25.09.2017
18:58:14
это много?
Для библиотеки да

Диёр
25.09.2017
18:58:18
СВЯТЫЕ ОГУРЦЫ ЧТО ЭТО

Kelin
25.09.2017
18:58:37
Denis
25.09.2017
19:09:16
@kelin2025 также можно же без рамды (...args) => f(args)

Google
Denis
25.09.2017
19:09:48
ох поинтфри любители)

kana
25.09.2017
19:22:11
идем от обратного, нужен метод, который принимает массив и функцию и делает спред аргументов. Называется она apply, если даже в стандартной либе жс. Значит нам нужна обратная функция, и имя ей - unapply, именно так в рамде она и называется: unapply(id)(1, 2, 3) === [1, 2, 3]

illiatshurotshka❄️
25.09.2017
19:25:11
вариадик аргументы не имеют же смысл в фп?

Kelin
25.09.2017
19:25:18
есть же pipe

kana
25.09.2017
19:25:56
ну pipe просто устоялся с очень давних пор, еще со времен юниксовых шелов, а может и раньше

Kelin
25.09.2017
19:27:43
ну вот

я ж не могу знать

вдруг у них тоже вместо unapply что-то устоявшееся

kana
25.09.2017
19:29:26
вообще конечно правильно было бы назвать функцию curry, а apply - uncurry, но имя curry уже забито другой функцией, котоую я бы назвал autocurry или makeCurriable

Denis
25.09.2017
19:31:43
нет

потому что это для Tuple а не для variadic

kana
25.09.2017
19:32:30
в рамде массивы используются как кортежи в некоторых местах

Denis
25.09.2017
19:32:34
f (a, b) -> f a b f a b -> f (a, b)

чушь какая)

kana
25.09.2017
19:34:21
смысл методов curry/unccury не в кортеже, ты путаешь следствие и причину. Смысл этих методов - превратить функцию, которая принимает много аргументов, в функцию, которая принимает один, и наоборот. А кортежи там или массивы, захордкорены ли их длины - это уже частные реализации, хаскель не эталон)

kana
25.09.2017
19:35:48
ЛИ сам по себе ни про какие curry не знает, там как раз частная реализация в контексте ЛИ. У нас ЖС, контекст другой, правила другие, но смысл и назначение те же самые

Дмитрий
25.09.2017
19:42:43
Н Е К А Н О Н!1! ??

Google
Kelin
25.09.2017
19:46:05
Во, ебать, в 2 раза укоротил

красота

Denis
25.09.2017
19:49:54
?

Kelin
25.09.2017
21:07:46
Размер

Блэт бэндла

andretshurotshka?❄️кде
26.09.2017
03:04:04
Еее

kana
26.09.2017
07:36:49
Шла тут тема про линейные типы, это вводный пост

Исчисление секвенций (полная Markdown-версия поста: http://bit.ly/2xyEgBS) Я начинаю серию постов про линейную логику и всякие крутые штуки, которые на ней основаны (изначально всё это задумывалось чтобы плавно подвести к линейным типам). Но прежде чем начать писать про саму линейную логику, нужно сказать пару слов о секвенциальном исчислении, через которое, как правило, определяется линейная логика. Итак, исчисление секвенций — система формального вывода формул, в основе которой лежит выводимость одних формул из других. Секвенцией называется отношение выводимости одной последовательности утверждений из другой. Обозначения: - A, B, C и т. д. — утверждения. - На утверждениях заданы операции: &, |, ¬. - Γ, Δ, Θ и т. д. — конечные последовательности утверждений. - Γ ⊢ Δ — секвенция (Δ выводимо из Γ). - A → B — импликация (определяется как ¬A | B). - α, β, γ и т. д. — произвольные термы. - a, b, c и т. д. — переменные. - Переменная в формуле называется свободной если она встречается вне области действия квантификаторов: ∀ и ∃. - A[τ/x] — замена в A переменной x на терм τ. Правила вывода доказательств Правила вывода в секвенциальном исчислении делятся на структурные и логические. Почти все правила имеют левую и правую версии (то есть обладают некоторой симметрией относительно знака ⊢). Аксиома индентичности Любое утверждение выводится из себя же: A ⊢ A Сечение (⊢ Α, Γ) & (⊢ ¬Α, Δ) ⇒ ⊢ Γ, Δ Логические правила Конъюнкция слева и дизъюнкция справа Запятая слева от знака ⊢ "переводится" в &, справа — в |: Γ, Α ⊢ Δ ⇒ Γ, Α & B ⊢ Δ Γ, B ⊢ Δ ⇒ Γ, Α & B ⊢ Δ Γ ⊢ A, Δ ⇒ Γ ⊢ A | B, Δ Γ ⊢ B, Δ ⇒ Γ ⊢ A | B, Δ Дизъюнкция слева и конъюнкция справа Эти правила отражают дистрибутивность конъюнкции секвенций: (Γ, A ⊢ Δ) & (Θ, B ⊢ Λ) ⇒ Γ, Θ, A | B ⊢ Δ, Λ (Γ ⊢ A, Δ) & (Θ ⊢ B, Λ) ⇒ Γ, Θ ⊢ A & B, Δ, Λ Импликация (Γ ⊢ A, Δ) & (Θ, B ⊢ Λ) ⇒ Γ, Θ, A → B ⊢ Δ, Λ Γ, A ⊢ Δ ⇒ Γ ⊢ A → B, Δ Отрицание Утверждения можно переносить с изменением знака из левой части секвенции на правую и наоборот: Γ ⊢ A, Δ ⇒ Γ, ¬A ⊢ Δ Γ, A ⊢ Δ ⇒ Γ ⊢ ¬A, Δ Квантор всеобщности Γ, A[τ/x] ⊢ Δ ⇒ Γ, ∀x. A ⊢ Δ Γ ⊢ A[y/x], Δ ⇒ Γ ⊢ ∀x. A, Δ Квантор существования Γ, A[y/x] ⊢ Δ ⇒ Γ, ∃x. A ⊢ Δ Γ ⊢ A[τ/x], Δ ⇒ Γ ⊢ ∃x. A, Δ (в правилах для кванторов всеобщности и существования подразумевается, что переменная y не является свободной в Γ и Δ) Структурные правила Ослабление Если секвенция истинна, то к её левой и правой частям можно добавлять утверждения, не повлияв на истинность: Γ ⊢ Δ ⇒ Γ, A ⊢ Δ Γ ⊢ Δ ⇒ Γ ⊢ A, Δ Сокращение Повторяющиеся элементы последовательности можно сократить: Γ, A, A ⊢ Δ ⇒ Γ, A ⊢ Δ Γ ⊢ A, A, Δ ⇒ Γ ⊢ A, Δ Перестановка Перестановка утверждений в последовательности не влияет на выводимость: ⊢ Γ ⇒ ⊢ Γ' (Γ' — перестановка Γ) Субструктурные логики Если убрать или ограничить какое-то из структурных правил, получим субструктурную логику. Субструктурными, например, являются линейная логика и афинная логика, о которых и пойдёт речь в следующих постах.

andretshurotshka?❄️кде
26.09.2017
07:38:44
норм

Kelin
26.09.2017
07:40:10
Че за пиздец

kana
26.09.2017
07:42:18
Заметьте, что автор поста уже не я. Я к тому, что если кому-то хочется что-то опубликовать своё на тему фп или математики, то это можно делать в моем канале)

Но чёт я в многие логические правила не въезжаю

Даниил
26.09.2017
09:40:43
На самом деле в следующем посте эти правила (только дополненные для линейной логики) будут применяться для доказательства всяких простеньких лемм, тогда думаю проще будет понять, на практике.

andretshurotshka?❄️кде
26.09.2017
12:50:00
опять 299 человек ? ливают что ли

kana
26.09.2017
12:53:25
Да, позавчера были те же 299

Алексей
26.09.2017
12:53:42
Спугиваете народ ?

andretshurotshka?❄️кде
26.09.2017
12:53:51
Алексей
26.09.2017
12:54:11
как?)
Слишком умные

kana
26.09.2017
12:55:17
Люди приходят про редакс и рх почитать, а тут логика и линзы

Gleb
26.09.2017
12:55:41
rx тут тоже самтаймс

Google
.
26.09.2017
12:55:57
Линзы в тему же чо вы. Оптика вообще актуальна

kana
26.09.2017
12:57:25
Вот тогда немного самописной оптики. За правильность не ручаюсь, но вроде никто не исправлял ничего, если кто-то читал



Но вот словесносное описание, писал в одной конфе: Линза - не пара из геттера и сеттера. Это ТОЛЬКО идентити, который еще запаковывает значение. Но обобщенный, то есть функции применяется к значениям не напрямую, а через функторы (что дает нам возможность внести в этот процесс идентити какой-то эффект, например изменение). Итак, что делает линза, основанная на геттере и сеттере: Линза принимает некую функцию pure', которая просто маленькое значение заворачивает в функтор (переносит в эффектфул мир). Далее линза принимает большое значение. С помощью геттера вытаскивает из него маленькое значение, переносит его в функтор через pure'. А потом применяет в эффектфул-мире (fmap) сеттер к объекту. То есть в прямом смысле вытащили значение и внесли его обратно, но сделали это в внутри функтора. И вся магия в том, что с помощью разных функторов и pure' можно делать разные вещи. Например, если сама по себе линза - такой идентити модификатор, то если отправить в нее конструктор функтора, который перед этим еще применяет к значению какую-нибудь функцию, то получится over. А если использовать Const, который позволяет обернуть значение в функтор, но потом не дает ничего с ним сделать через fmap, то на выходе мы получим контейнер с нетронутым маленьким значением внутри. Это view.

? animufag ?
26.09.2017
12:58:19
а можно в гисте

а то главзами искать неудобно

Admin
ERROR: S client not available

kana
26.09.2017
12:58:34
Окей, через минут 30, когда поем

? animufag ?
26.09.2017
12:58:45
кк

illiatshurotshka❄️
26.09.2017
13:00:44
что за эффектфул мир?

kana
26.09.2017
13:02:30
Это такой же чистый мир, просто через обертки, которые могут делать что-то неочевидное) Ну, именно так я это понимаю. Это функторы, монады, аппликативные, траверсалы

Denis
26.09.2017
13:02:31
Категория Клейсли

illiatshurotshka❄️
26.09.2017
13:02:57
а

kana
26.09.2017
13:22:00
@vlastachu https://gist.github.com/kana-sama/c12843b2c940419b3dff156761c3c446

? animufag ?
26.09.2017
13:24:40
да сложновато для инструмента с такой простой целью

кстати помню был чел https://artyom.me/lens-over-tea-1

довольно забавно писал

kana
26.09.2017
13:26:00
ну по идее либы разрабатываются так, чтобы их можно было использовать без понимания того, как они работают внутри

почему-то в хаскеле так не получается

illiatshurotshka❄️
26.09.2017
13:32:33
разве так не будет в любом языке с возможностью создать такие структуры?

Google
Kelin
26.09.2017
13:48:37
Обожаю преподов сука - о, у тебя во введении 4 слова красивых, скажи, что там написано Ну сказал крч - нет, неправильно. У тебя там было написано, что первый язык функционального программирования - лисп - в смысле?? Это не 4 слова, и даже не введение - а, ну да, сорян, мой косяк @@@ в конец очереди @@@ а, время, я домой пошёл

Aleh
26.09.2017
13:52:29
какой-то поток сознания

Kelin
26.09.2017
13:53:02
Пригорел просто

? animufag ?
26.09.2017
13:53:56
напомнило тау сидишь с расчётами (довольно простыми но сам предмет хз о чём) ждёшь пару часов, предпод молча рисует вопросительные знаки на твоей распечатанной работе (только печатать можно) спрашиваешь его в чём проблема – он говорит что проблема в тебе (ему вообще поссать на твоё мнение сейчас, ведь ты пропускал его лекции) идёшь и пытаешься с пацанами выяснить что было не так.

Kelin
26.09.2017
13:55:12
А потом удивляются, почему говорят, что вузы нахуй не нужны

? animufag ?
26.09.2017
13:55:32
ну вот эта инженерная херня примерно одинаково проходит

Kelin
26.09.2017
13:55:39
Это я ещё успел перепилить отчёт по госту

.
26.09.2017
13:56:03
Я по паре месяцев сдавал
Нас отчисляли быстрее. Поступало больше сотни выпустились 12

Aleh
26.09.2017
13:57:02
на экзамене покричал на меня в духе “я начальник, ты дурак” и выгнал с минимальной оценкой

? animufag ?
26.09.2017
13:58:07
ну да зачастую не понимал дурачков которые пишут конспекты

за исключением тех ситуаций где профит от конспекта заранее оговаривался преподом

Дмитрий
26.09.2017
13:58:45
Нас отчисляли быстрее. Поступало больше сотни выпустились 12
У нас тоже всех отчисляли, меня не смогли))

Aleh
26.09.2017
13:58:46
да как бы ок, если удобнее писать конспект, то ради бога. Мне неудобно

Дмитрий
26.09.2017
13:58:54
Сдал потом диплом на 5

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