@frp_ru

Страница 128 из 420
? animufag ?
02.08.2017
14:54:35
всё равно как спросить зачем вообще писать типы если я сую инт туда где предполагаю получить инт

Denis
02.08.2017
14:55:32
лень настраивать окружение
Есть же tryflow, trytypescript

Online

? animufag ?
02.08.2017
14:56:08
по крайней мере флоу должен был сказать что есть ошибка на третьей строке где id("")

Google
Дмитрий
02.08.2017
14:56:31
ну в таких языках как js да
Исключительно если реализовывать всё в лоб

Denis
02.08.2017
14:57:09
Хватит жс защищать) пойми это даже не полумера как окамль

? animufag ?
02.08.2017
14:58:49
https://flow.org/try/#0PTBmFcDsGMBcEsD2kAE1EFsAOiDOBTAHgBUAaFAJXOIDUBDAG3H2oEEAnAc1wC4UBJWPnZ0ARgyLEUAXgB8lWbIAUoSHyUA6LcQ7cAlDPm1Gzclo10uvFDqt6+xpvhQBvAFAgUKdvljh2qKqaWpb6ANwewAC+brEQMAjIKPAAJiTKsA72Nq5uXj5+ASiwETFu8XBIqKlKmSiQ4Biiwtm4sOzwkJy5+b7+qABEDIgMA6Wx6JC4I-gaw5xKNQMDenoRk9MSc4gLNQCMqxGRG7AoAB58bR1dMmiYOARKGACeAGKQ5AAsAEzkAOSQRBYfB-NZuIA

Есть же tryflow, trytypescript
не подскажешь что там в консоль выводится?

andretshurotshka?❄️кде
02.08.2017
14:59:08
Есть же tryflow, trytypescript
он скомпилированный код для флоу не покажет

Denis
02.08.2017
14:59:52
не подскажешь что там в консоль выводится?
Я вообще с телефона, бп на ремонте

andretshurotshka?❄️кде
02.08.2017
15:00:03
tryflow только типы и проверит)

? animufag ?
02.08.2017
15:00:12
ээх

Дмитрий
02.08.2017
15:00:31
Хватит жс защищать) пойми это даже не полумера как окамль
Я не защищаю жс, я просто не люблю когда игнорируют элементарные алгоритмы, рассматривая язык как дар свыше, вмешиваться в работу которого — ни-ни

? animufag ?
02.08.2017
15:00:36
мб кто-нибудь запустит у себя

лень настраивать окружение

andretshurotshka?❄️кде
02.08.2017
15:00:52
ща попробую

Google
Дмитрий
02.08.2017
15:01:40
Я лично делал реализацию профункторов, которая выдерживает сорок тысяч последовательных (вложенных) вызовов

Причём не скажу, что там вообще было что-то сложное

Denis
02.08.2017
15:02:41
Всякими хаками оптимизировать, хотя это должен делать компилятор

Дмитрий
02.08.2017
15:02:46
Это не хак

Я про это и говорю, ты почему то рассматриваешь язык как дар свыше

Я — как инструмент для решения проблем

Fluture абсолютно так же stack safe

Реактовский файбер — тоже

У всех всё есть, у одного тебя почему то жс на это не способен

Denis
02.08.2017
15:04:32
И где твои профункторы?

Дмитрий
02.08.2017
15:05:23
Вовсю используются, разумеется

https://github.com/zerobias/telegram-mtproto/tree/feature/mtproto3/packages/telegram-mtproto/src/util/profunctor

Если что, то Arrow там — неподходящий термин для того объекта, но переписывать пока лень

andretshurotshka?❄️кде
02.08.2017
15:06:23
лень настраивать окружение
function id(t) { return t; } function id(t) { return "lol"; } console.log(id("")); console.log(id(1));

скомпилированный код

? animufag ?
02.08.2017
15:07:25
ммм косяк

обычно лень делать, но пожалуй напишу им ишью

andretshurotshka?❄️кде
02.08.2017
15:08:34
так в флоу и не было оверлоада

никогда

Google
Дмитрий
02.08.2017
15:08:44
обычно лень делать, но пожалуй напишу им ишью
Они тебе ответят, что это принципы js и в них они не вмешиваются

andretshurotshka?❄️кде
02.08.2017
15:09:02
так тоже не работает

в тс бы сработало

declare function id<T>(t: T): T declare function id(t: number): string function id(t) { if (typeof t === 'number') { return "lol"; } else { return t } }

Denis
02.08.2017
15:09:27
Трамполины, трансдьюсеры все от лукавого, тем более хикки сделал трансдьюсеры через хаки потеряв всю математику, а там должны быть ф алгебры

? animufag ?
02.08.2017
15:09:28
окей окей ребят

косяк вот здесь "console.log(id(""));"

Denis
02.08.2017
15:09:51
Ну и стеки через массивы в которых зависимости хранятся

Denis
02.08.2017
15:11:02
Ну трансдьюсеры точно битая абстракция

andretshurotshka?❄️кде
02.08.2017
15:11:09
кул
вот если убрать тип он выведет все)

Дмитрий
02.08.2017
15:11:14
Если ты не хочешь лезть в базис реализаций — так и говори, это нормально. Но это не значит, что этот код какой-то расово неверный или что-то ещё

Denis
02.08.2017
15:12:23
А вообще вроде катаморфизмы можно через профункторы записать и вроде даже инициарная и терминальная алгебра коалгебра получится

andretshurotshka?❄️кде
02.08.2017
15:12:27
вот если убрать тип он выведет все)
https://flow.org/try/#0GYVwdgxgLglg9mABDAJgCigSkQbwFCLLCIYCeADgKZzFSIC8jiA5GCALYBGlATs9vkKEelKCB5IARABs40yQG4CiAL6JK0gM6Vcy4aPFIoylXlN4ICTXMoA6WQHM0qNJMmZMSy2GvS7j53QARg8lIA

Дмитрий
02.08.2017
15:13:04
Это банальные алгоритмы, которые делают ровно то, что от них требуется и являются надёжной абстракцией в данном случае, их отрицание не более эффективно, чем отрицание гравитации

Denis
02.08.2017
15:13:30
Если ты не хочешь лезть в базис реализаций — так и говори, это нормально. Но это не значит, что этот код какой-то расово неверный или что-то ещё
Ну вот в промисах стек не вышибает потому что вместо CPS там массив зависимостей, а это какая-то херня малята

Дмитрий
02.08.2017
15:13:34
Потому что этим кодом как и любым другим можно пользоваться в стиле поставил и забыл

Google
Denis
02.08.2017
15:14:55
Потому что этим кодом как и любым другим можно пользоваться в стиле поставил и забыл
Но знаешь много путей приводит к одному и тому же результату, вопрос насколько это категорно алгебраически расово верно

andretshurotshka?❄️кде
02.08.2017
15:15:35
лол

Дмитрий
02.08.2017
15:22:55
Но знаешь много путей приводит к одному и тому же результату, вопрос насколько это категорно алгебраически расово верно
Нуу меня при описании например всегда надёжно сохраняется и выводится тип. Мой поинт в том, что если я сейчас заморочаюсь с бабелем, чтобы скрыть имплементацию в синтаксический сахар а ля пурс и скажу, что «это новый proscript, deal with it», то в сущности это ничем не будет отличаться от метода работы пурсы Есть абстракция — гарантии, которые предоставляют авторы языка/инструментария юзерам, например по категорным качествам сущностей; и есть имплементация, которая занимается байтоёбством с массивами (как у меня там в prelude) и прочими низкоуровневыми вещами, чтобы юзеры об этом голову не забивали

Denis
02.08.2017
15:25:30
Но заменять CPS стеком из массива зависимостей, это как-то не так

Admin
ERROR: S client not available

kana
02.08.2017
18:00:36
Это нормально, если это работает полностью как ожидается

А оно работает полностью как ожидается

Denis
02.08.2017
18:00:50
?

Дмитрий
02.08.2017
18:01:52
Да

В сущности, на каком-то уровне реализации массив функций всё равно всплывёт

И если ты не занимаешься реализацией как я, то это не твоя головная боль)

На самом деле у меня есть даже более оптимизированная реализация infinite call stack, хочу уже эту идею как-то обобщить и вынести отдельно, чтобы потом уже на её базе развернуться вовсю

Функторы, maybe, either, future без sanctuary-type-classes и так далее

Vadim
02.08.2017
22:16:33
Пытаюсь сейчас играться с комбинаторами, переделывая код на поинтфри стиль, и заменяя комбинаторами где можно функции "с телом" и переменными. И поражаюсь насколько объемным становится код. Это неизбежно? Код на комбинаторах в любом случае будет более длинным и многословным чем при использовании ramda или функций с телом? Даже в "умелых руках"?

Вот это: var renameKeys = (keysMap, obj) => reduce((acc, key) => assoc(keysMap[key] || key, obj[key], acc), {}, keys(obj)) Превращается в такой нечитаемый кошмар: var renameKeys = converge(reduce(__, {}, __), [useWith( compose(warblerstar, robinstar, useWith(assoc), append(identity), pair), [o(warblerstar, robinstar, propOr), flip(prop)]), compose(keys, nthArg(1))])

И это я пока лишь только 2 комбинатора использовал: warblerstar и robinstar из fantasy-birds

Это я пытался переделать на поинт-фри вот этот пример из кукбука ) https://github.com/ramda/ramda/wiki/Cookbook#rename-keys-of-an-object

Самое ужасное, что такой код становится невозможно поддерживать. Вспоминаются подобные беды от длинных регекспов. Которые можно написать, но для исправления требуется больше времени чем для написания )

? animufag ?
02.08.2017
23:12:50
да

Google
? animufag ?
02.08.2017
23:12:58
они нечитаемы

хз почему ты пытаешься достичь этой цели

в хаскел-комьюнити помню гонзалес писал мол забейте писать эти точки и флипы

andretshurotshka?❄️кде
02.08.2017
23:41:57
?

тайлор пилит что-то странное

https://github.com/motorcyclets/compiler

Vadim
03.08.2017
15:54:18
в хаскел-комьюнити помню гонзалес писал мол забейте писать эти точки и флипы
Тут Чувак в видео с таким жестким названием говорит: "используйте point free когда это делает кот более читаемым, и не используйте когда он делает его менее читаемым" ) https://youtu.be/seVSlKazsNk Так что, я смотрю, даже адепты не требует использовать point free повсеместно.

? animufag ?
03.08.2017
16:00:23
тип жёсткий пойнтфри – путь к однострочникам. однострочники при разрастании нуждаются в комментариях, а комментарии – зло. поэтому нужно искать в длинном экспрешене сущности, которые можно проименовать, объявить их как конст (или вынести как общую функцию которая потом пригодится). и оставить поинтфри в виде one . two . three

Mikhail
03.08.2017
20:16:06
Жесткий point free не нужен

Denis
03.08.2017
20:28:44
Кхм

Дмитрий
03.08.2017
20:30:26
Нормально делай — нормально будет

? animufag ?
03.08.2017
20:32:13
Нормально делай — нормально будет
Хз не особо выходит обычно

andretshurotshka?❄️кде
04.08.2017
07:02:06


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