@frp_ru

Страница 211 из 420
Дмитрий
08.10.2017
12:00:57
Да ясен красен

const True = t => f => t const False = t => f => f const If = b => t => f => b (t) (f) console.assert(1 == If (True) (1) (2)) console.assert(2 == If (False) (1) (2)) Not = x => If (x) (False) (True) And = x => y => If (x) (y) (False) Or = x => y => If (x) (True) (y)

И короче погнали

Определяем числа: Zero = s => z => z One = s => z => s (z) Two = s => z => s (s (z)) Операции над ними: IsZero = n => n (_ => False) (True) Lte = n => m => IsZero (Sub (n) (m)) Lt = n => m => Lte (Succ (n)) (m) Фолд: const Foldr = f => z => l => l (f) (z) Операции над списками: const Append = a => l => (f => x => f (a) (l (f) (x))) const Head = l => l (a => _ => a) () const list = Append (1) (Append (2) (Nil)) const Map = m => l => (f => x => l (a => f (m (a))) (x)) const Length = l => Foldr (_ => Succ) (Zero) (l) Определяем комбинатор неподвижной точки Z = f => (x => f (y => x (x) (y))) (x => f (y => x (x) (y))) Теперь можем определить поиск остатка от деления Rem = Z (rem => n => m => ( If (Lt (n) (m)) (_ => n) (_ => rem (Sub (n) (m)) (m)) ) ())

Google
Дмитрий
08.10.2017
12:01:55
Здорово как, правда

Denis
08.10.2017
12:01:58
И чё? У меня покруче) как изо для неподвижного функтора лямбда типа

Дмитрий
08.10.2017
12:02:00
Удобно

Давай весь жс так перепишем, смотри какой апи короткий, че хочешь делай)

Denis
08.10.2017
12:03:39
Кодировка Черча как раз это самое естественное понятие и все можно заэнкодить, а индуктивность и коиндуктивность можно используя простой лямбда тип и рекурсивную схему что тоже естественное понятие

Дмитрий
08.10.2017
12:04:05
Свежо предание

Denis
08.10.2017
12:06:08
Мне как-то пофиг) пишу на хаскель слушаю мешугу)

Дмитрий
08.10.2017
12:06:24
Ну это по выходным

Мишуга уже не та, бтв

Denis
08.10.2017
12:06:40
Когда пишу на жс слушаю граинд)

Да как раз последний альбом норм

andretshurotshka?❄️кде
08.10.2017
13:16:24
лол

Google
illiatshurotshka❄️
08.10.2017
13:21:58
видел на руби подобное оч давно

kana
08.10.2017
14:12:29
Знаком кто с орнаментами?

Denis
08.10.2017
14:13:55
страшна https://github.com/kategory/kategory/blob/master/kategory-recursion/src/main/kotlin/kategory/recursion/typeclass/Recursive.kt

Знаком кто с орнаментами?
ну это значки такие)

kana
08.10.2017
14:14:20
Значки?

У меня просто куча пейперов по орнаментам страниц по 50, все на агде, читать страшно, а проблему решают вроде важную

kana
08.10.2017
14:31:05
Реюзабельность функций, как я понял. Ну, это было на первых страницах одного пейпера. Шоб не писать один и тот же take/fold для списков, векторов, а как бы наслаивать типы друг на друга

То есть построение типов из конструктора слой за слоем

Хотя во многих случаях фолды и мапы можно задерайвить, а остальные функции писать на их основе, но это решение уровня генереков плюсов

Kelin
08.10.2017
19:25:32
Смотрите, какая тема В объекте есть метод, который принимает функцию. В функции аргумент - этот самый объект, и его можно мутировать. Только flow ругается, если я пытаюсь добавить новое свойство в объект. Как быть? Он же должен ругаться только на exact



собственно, вот



andretshurotshka?❄️кде
09.10.2017
02:14:50
лол

че за ошибка

Google
Дмитрий
09.10.2017
02:15:28
С мутациями всегда проблема

И ето хорошо, нечего мутировать ?

andretshurotshka?❄️кде
09.10.2017
03:45:59
еее мутирую

Любит наш народ ~всякое говно~ стейт мутировать. Причин для этого нет, но люди упорно пишут всякие пушы и прочее, когда этого можно не делать

— Опять мутируешь, пёс

Мам,я не мутировал, друзья мутировали,а я просто рядом стоял

Kelin
09.10.2017
05:35:58
Ну такой вот кейс, шо уж поделать

Решил проблему добавлением [string]: any

Дмитрий
09.10.2017
06:05:35
Всегда так делаю

Kelin
09.10.2017
06:09:42
Ля, то все пишут, что везде должны быть строгие типы и никаких any Потом выясняется, что всем похуй ?

Дмитрий
09.10.2017
06:31:11
На самом деле реально достаточно не мутировать объект, чтобы флоу в твоём случае начал выводить типы даже без твоей помощи

Ты меняешь сам тип объекта на лету, что нужно указывать отдельно, что — отстой. Если ты не меняешь тип объекта а спредишь его в новый, то тип нового автоматически выводится как твой тип + поле

Все беды от старых привычек

Дмитрий
09.10.2017
06:38:52
Потому что он смирился со своей насквозь мутабельной сущностью

Спасибо, что поинтересовался, хороший кейс того как не надо

(какой вопрос — такой и ответ)

Дмитрий
09.10.2017
06:40:47
А ты проверял?

Google
Дмитрий
09.10.2017
06:41:41
Спасибо, что поинтересовался, хороший кейс того как не надо
Ресурсы любой команды — ограничены, вместо того, чтобы пилить реально актуальные фичи, кто-то из команды натачивал мутабельность. Не уверен, что самое удачное вложение энергии

andretshurotshka?❄️кде
09.10.2017
06:42:43
Типизируй как бабочка, жаль я тайпскрипт

Дмитрий
09.10.2017
06:43:04
Хайпскрипт

andretshurotshka?❄️кде
09.10.2017
06:43:12
Антихайпскрипт

Дмитрий
09.10.2017
06:43:17
?

andretshurotshka?❄️кде
09.10.2017
06:44:01
andretshurotshka?❄️кде
09.10.2017
06:44:44
Хайпскрипт
https://github.com/fzakaria/HypeScript

illiatshurotshka❄️
09.10.2017
06:44:56
Спасибо, что поинтересовался, хороший кейс того как не надо
не важно, надо или нет, важно что он должен в любом случае справляться

andretshurotshka?❄️кде
09.10.2017
06:46:43
ща бы сравнить раст и жс, wait OH SHI~



illiatshurotshka❄️
09.10.2017
06:47:04
рофлл

Дмитрий
09.10.2017
06:47:19
не важно, надо или нет, важно что он должен в любом случае справляться
Обобщения не работают Для разработчика языка нет любых счлучаев, есть лишь туча вариантов с разными приоритетами Вот растаманы выбрали одним из приоритетов мутабельность Их выбор

Дмитрий
09.10.2017
06:47:49
Сзади purescript в судьях

Ты понимаешь, что ты не можешь охватить все случаи сразу?

Никак

Да, вообще никак

Google
Дмитрий
09.10.2017
06:48:29
Да, твои любимцы тоже

Попытайся себе это представить

illiatshurotshka❄️
09.10.2017
06:48:43
щас бы придумывать оправдания к некорректной работе программы

Дмитрий
09.10.2017
06:49:18
Окей, в следующий раз я просто не буду отвечать ни на какие вопросы со словом раст

Базара 0

У тебя всё по одному сценарию, надоело уже

andretshurotshka?❄️кде
09.10.2017
06:49:42
Kelin
09.10.2017
06:50:02
В данном кейсе я не вижу ничего плохого в мутации Есть либа, и плагины, которые будут ставиться таким образом Тип, нигде больше мутаций нет

Это не дело "привычки"

Дмитрий
09.10.2017
06:50:07
Kelin
09.10.2017
06:50:11
Шо ж вы сразу хуесосить

illiatshurotshka❄️
09.10.2017
06:50:27
что значит некорректно?
ну проблема Келина решается только с any

Дмитрий
09.10.2017
06:50:35
Нет конечно

illiatshurotshka❄️
09.10.2017
06:51:06
Дмитрий
09.10.2017
06:51:43
Если я не стал рассказывать решение, то это не значит, что его нет, я упомянул то что мне важнее

Kelin
09.10.2017
06:51:57
В данном кейсе я не вижу проблем с мутацией, наоборот, норм

illiatshurotshka❄️
09.10.2017
06:52:02
оо

ну непонятно с чьей стороны проблема

Дмитрий
09.10.2017
06:53:24
Проблема решается описанием типа, в котором требуемое поле существует, и имеет maybe тип, я просто искренне считаю что это совершенно не правильно и он не должен так делать

Kelin
09.10.2017
06:53:39
Проблемы нет никакой, я хз что вы возмущаетесь

Дмитрий
09.10.2017
06:53:51
Дискутируем

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