@typescript_ru

Страница 24 из 669
Дмитрий
19.07.2016
18:33:13
Это функция высшего порядка, а не функтор
И это тоже, но чуть конкретнее) Терминология хаскеля class Functor f where fmap :: (a -> b) -> f a -> f b

Dreamerinnoise
19.07.2016
18:33:24
http://functionaljavascript.blogspot.com/2013/07/functors.html

Дмитрий
19.07.2016
18:34:22
Саторин
19.07.2016
18:35:04
И это тоже, но чуть конкретнее) Терминология хаскеля class Functor f where fmap :: (a -> b) -> f a -> f b
Ну да, тайпкласс для которого определен fmap. Не фвп. В крестах это класс с переопределенной операцией вызова функции, например

Google
Саторин
19.07.2016
18:36:53
According to the theory, function F is afunctor when for two composable ordinary functions f and g F(f . g) = F(f) . F(g) where . indicates composition. ie. functors must preserve composition.

Дмитрий
19.07.2016
18:39:10
Это скорее интерфейс, а не класс) И нет, это одновременно полноценная функция высшего порядка)) Посмотри по ссылке как это сделано. В js/ts слишком хорошее функциональное программирование, чтобы размышлять в терминах C++

Дмитрий
19.07.2016
18:42:42
Точнее эти понятия не эквивалентны
Вот тут ты прав) Именно поэтому я и написал тот термин, а не фвп)

Саторин
19.07.2016
18:43:31
А, ну сори. Просто ты написал что это функция, которая принимает на вход другую функцию

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

Dreamerinnoise
19.07.2016
18:51:31
Традиционный в js :)

Дмитрий
19.07.2016
19:41:48
А, ну сори. Просто ты написал что это функция, которая принимает на вход другую функцию
Да, поэтому я и написал, функтор)) Присмотрись к своему определению, даже оно подтверждает мои слова)

class Layer ... //твой слой let images //твои изображения let print //твоя функция печати слоя const enum TLayer {TOP, MIDDLE, BOTTOM} type Order = TLayer[] interface ILayered { getLayer(lt:TLayer)=>Layer } let imgLayers = (order:Order)=> (img:ILayered)=> order.map(img.getLayer) let printLayers = (printFunc,layersFunc)=> //композиция двух функций (img:ILayered)=> layersFunc(img).map(printFunc) let _order = [ TLayer.BOTTOM, TLayer.MIDDLE, TLayer.TOP ]; //заметь, порядок выбираем мы сами let orderFunctor = imgLayers(_order); let printImage=printOrdered(print,orderFunctor); images.map(printImage)

По моему вполне элегантно js/ts подходит)) С ramda так вообще шик и блеск будет

Саторин
19.07.2016
19:54:39
Спасибо бро что накатал свой пример, но проблему энума ты не решил похоже. Он остался в виде TLayer

Google
Дмитрий
19.07.2016
19:56:11
Спасибо бро что накатал свой пример, но проблему энума ты не решил похоже. Он остался в виде TLayer
TLayer - это тупо идентификатор твоего слоя, и в отличии от всего вышеперечисленного это - константное число, даже не объект.

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

Дмитрий
19.07.2016
19:58:22
Заметно))

Ҫѐҏӗѫӑ
19.07.2016
23:51:54
btw про енумы на след неделе на митинге tc39 будут говорить

Dreamerinnoise
20.07.2016
05:52:12
О, а второй вебпак будет поставляться с этим. https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/webpack

Vladimir
20.07.2016
09:27:46
Зачем в джсе енумы?

Viacheslav
20.07.2016
09:42:51
дабы не писать const USER_LOGGED_OUT = 'USER_LOGGED_OUT' :)

Vladimir
20.07.2016
10:02:01
ну это уж совсем сахар

Ҫѐҏӗѫӑ
20.07.2016
10:22:57
а что, есть пропосал?
нет, но 15 минут на них выделено

ваще enum в js зарезервированное слово с самого начала если что

Vladimir
20.07.2016
10:24:14
ну это примерно ничего не значит

http://www.ecma-international.org/activities/Languages/Language%20overview.pdf

Угарный док

Ҫѐҏӗѫӑ
20.07.2016
10:25:59
все так. но факт остается фактом. rwaldron собирается втирать 15 минут про енумы

Vladimir
20.07.2016
10:26:33
Да хз че там имеется в виду. Там просто написано: enum

Ҫѐҏӗѫӑ
20.07.2016
10:27:12
Угарный док
ты наверное еще этот не видел http://www.ecma-international.org/publications/files/ECMA-ST/ECMA-414.pdf

Artur
20.07.2016
14:35:32
А у кого-нибудь, кто пользуется WebStorm последним, были проблемы с конфликтом node.d.ts и lib.es6.d.ts?

Саторин
20.07.2016
15:08:32
Я в саблайме пишу)

Google
Dreamerinnoise
20.07.2016
15:44:05
я продался MS и пишу на vscode

Саторин
20.07.2016
15:45:23
У атома поддержка лучше но мне не нравится как там подсказки работают

Саторин
20.07.2016
15:50:28
Ну то что я заметил есть автокомплит для импортов и можно найти все использования для символа

Dreamerinnoise
20.07.2016
15:50:58
автовставка? да, не хватает в code

Саторин
20.07.2016
15:52:04
Нет, такого нет - просто имя файла подсказывает

Dreamerinnoise
20.07.2016
15:52:51
А. тогда это киллер-фича JetBrains

Vasiliy
20.07.2016
17:11:45
выдалось время поразбираться в тайпскрипте

начал с основ

function isFish(pet: Fish | Bird): pet is Fish { return (<Fish>pet).swim !== undefined; }

вот это позволяет писать так: if (isFish(pet)) { pet.swim(); } else { pet.fly(); }

т.е. User-Defined Type Guards, не очень понимаю как это работает

как он понимает внутри фигурных скобок какого типа pet

это типа прям в язык встроено

блин, как же странно это выглядит

Notice that TypeScript not only knows that pet is a Fish in the if branch; it also knows that in the else branch, you don’t have a Fish, so you must have a Bird.

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

andretshurotshka?❄️кде
20.07.2016
17:20:41
а когда user-defined type guards в switch'ах будут работать?

Ҫѐҏӗѫӑ
20.07.2016
17:22:52
я продался мс и везде пропагандирую их технологии

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

Google
Vasiliy
20.07.2016
17:26:10
Do not use "I" as a prefix for interface names.

уупс :)

читаю https://github.com/Microsoft/TypeScript/wiki/Coding-guidelines

а я уже везде все интефейсы назвал с префиксом I :) причем почти со всеми остальными рекомендациями чисто интуитивно угадал

Aleh
20.07.2016
17:30:25
никогда не юзал I для интерфейсов)

но это для тех, кто в ts контрибутит

Vasiliy
20.07.2016
17:33:34
да, с шарпа привычка, хоть и не писал на нем лет 5) ничего, сейачас все прочитаю пока есть возможность. да стайлгайд для контрибьюторов, просто другого не нашел, хотя, нашел https://basarat.gitbooks.io/typescript/content/docs/styleguide/styleguide.html и это еще https://github.com/Platypi/style_typescript

Aleh
20.07.2016
17:34:55
пропагандируешь

Ҫѐҏӗѫӑ
20.07.2016
17:35:13
винду)

офис

Aleh
20.07.2016
17:35:53
винду О.о

Ҫѐҏӗѫӑ
20.07.2016
17:36:01
а чо нет?

YOLO

Aleh
20.07.2016
17:37:09
ну только вот с убунту терминалом

хз как там хорошо оно работает

Andrey
20.07.2016
17:37:38
не, винда для игр только норм)

Vasiliy
20.07.2016
17:38:09
кек https://github.com/Platypi/style_typescript#interfaces

Interfaces should be prefaced with the capital letter I.

а basarat: Don't prefix with I

Google
Aleh
20.07.2016
17:39:16
ну я поддерживаю тех, кто не префиксит)

Алексей
20.07.2016
17:39:18
я за prefixing with I ... не понимаю почему нет.. не услышал ни 1 аргумента

Vasiliy
20.07.2016
17:39:29
ладно, пусть все остается как было

Aleh
20.07.2016
17:39:41
типа, зачем искажать имя?

Ҫѐҏӗѫӑ
20.07.2016
17:40:00
винда не только для игр норм, не надо

она дохуя для чего норм

Алексей
20.07.2016
17:40:13
в чем "искажение" ?

Aleh
20.07.2016
17:40:42
ну, какая-то левая буква, которая говорит внешнему наблюдателю, что перед ним интерфейс, а ему должно быть все равно интерфейс перед ним, тип или класс

Andrey
20.07.2016
17:41:15
винда не только для игр норм, не надо
С ней много проблем с модулями из npm, по той причине, что не все тестят их, терминал странный, нет brew. Хотя и можно на винде жить)

Aleh
20.07.2016
17:41:33
так а кто-нить тестил эту убунту виндовую?

Ҫѐҏӗѫӑ
20.07.2016
17:41:33
99% населения планеты похуй на npm как-т

Aleh
20.07.2016
17:41:51
@chicoxyzzy а ты не девелоперов агитируешь?

для офисной ерунды она норм, как и убунту или мак, одинаковые они)

Ҫѐҏӗѫӑ
20.07.2016
17:42:14
и девелоперов тоже

Aleh
20.07.2016
17:42:18
кино посмотреть, пасьянс разложить в вк написать

Ҫѐҏӗѫӑ
20.07.2016
17:42:25
лучше платформы для разработки на плюсах просто нет

Aleh
20.07.2016
17:43:21
ну хз, я не специалист в плюсах ниразу, может оно и удобно

но плюсы опять же не про вебдев, обычно

Ҫѐҏӗѫӑ
20.07.2016
17:43:39
vs — единственная нормальная ide для плюсов

это пока что)

Aleh
20.07.2016
17:43:58
vim и emacs нормальные ide с нормальными компиляторами, а все остальное хз)

Страница 24 из 669