A64m
вообще серьезное изменение языка может не иметь большого влияния на практику его использования (по крайней мере какие-то годы до того, как практика поменяется) к примеру модули для хаскеля - это очень серьезное изменение языка но внедрение у него нулевое, так что никак на практику написания хаскельных программ оно не повлияло
саша
То есть промисы это даже не изменение языка, это изменение "стандартной библиотеки".
Алексей
То есть промисы это даже не изменение языка, это изменение "стандартной библиотеки".
Ну так то да. Но изменение которое оказало громадное воздействие. Поэтому по своей значимости изменение очень значительное (простите за тавтологию).
саша
Async/await может спокойно транслироваться в es5 код без генераторов. А самописные промисы практически бесполезны, если повсюду либы на коллбэках, потому что в стандарт промисы не завезли.
если у функций на колбэках есть унифицированный интерфейс (как, например, в Node.js), то написать функцию, которая функцию на колбэках превращает в функцию на промисах очень просто
Alexander
Что делают некоторые либы.
саша
Или завернуть эти колбеки в монаду
промисы это и есть +/- монада
Зигохистоморфный
Alexander
Не "промисы и есть +/- монада", а "промисы могут иметь монадический интерфейс". А могут и не иметь.
Зигохистоморфный
🌞Sunny
ты бы ещё предложил код после обфускации читать
Зигохистоморфный
вообще какого всякая дичь в haskell канале обсуждается?
саша
откуды вы лезете?
Так, а что не так? .then - это bind, только принимает не только a -> m b, но и a -> b. Promise.resolve - это return
Зигохистоморфный
надо что против темы или дичь какая - сразу права не писать в канал
Зигохистоморфный
развели помойку
🌞Sunny
надо что против темы или дичь какая - сразу права не писать в канал
а потом люди удивляются, что на хаскеле мало проектов
🌞Sunny
Alexander
Например, плюсовики сейчас вслед за Саттером гордятся своим новым изобретением std::expected<A,B>, который на поверку оказывается аналогом Either. И даже упоминают, что это - монада. Вот только мало кто понимает, что это не монада, а тип, который может иметь монадические свойства, если для него реализовать функтор, аппликатив и монаду (т.е., иметь fmap, pure и `bind`). Это не то же самое, что "он - монада, а значит, мы пишем монадический код"
саша
ну ты школьник и принцип async/await как стейт машины не понимаешь
я прекрасно понимаю async/await, но только вот с генератороми асинхронный код писать гораздо проще, чем на стейт машинах(да генератор и есть стейт машина, спасибо, знаю).
Alexander
но в плюсах же нет синтаксической поддержки для монад, будет туева хуча скобочек
Что поделать. Синтаксическая поддержка - это круто, но ее отсутствие можно пережить. Я, кстати, пока думаю, как ее имитировать.
Зигохистоморфный
в какую же чушь этот чат превращается
Алексей
Alexander
"Чат уже не тот" (С)
Alexander
Астрологи объявили неделю токсичности. Число активно чатящихся хаскеллистов увеличилось вдвое.
🌞Sunny
кроме operator и define (сомнительно define использовать для таких целей, конечно)
Alexander
в плюсах какие-нибудь есть возможности для синтаксических расширений?
На бустовом препроцессоре имитировали do-нотацию. Я пока еще не разобрался, как. А вообще, макросы - наше все
🌞Sunny
#define square(x) (x*x) square(i++)
🌞Sunny
🌚
Alexander
обсуждение js объявляется закрытым после этой черты: -----_------------ ^_^ -----------------_------
A64m
недоду-нотация впервые в мейнстрим попала в 2005-ом с тех пор внедрение особо не продвинулось
A64m
но, еще 15 лет не прошло - не срок
Alexander
Ну, я вчера на С++ имплементил Church encoded free monad
Alexander
одно дело пообсуждать, другое - треш в течении двух дней устраивать
Alexander
для шутников, которые хотят нащупать границы - применение силы производится случайно, но зависит от того, насколько человек "правильный гражданин"
A64m
какие еще таргеты хаскеля будут запрещены следующими? x86? llvm ir?
Alexander
а какие сейчас запрещены?
A64m
яваскрипт, очевидно же
Alexander
а, в этом смысле
Alexander
в контексте таргета - обсуждайте
Alexander
но тут уже жесть какая-то пошла
A64m
в контексте таргета новые фичи es - революционные. половина выхлопа ghcjs это function{return;}
Cheese
кроме operator и define (сомнительно define использовать для таких целей, конечно)
первый не меняет синтаксис. второй может, но это чрезвычайно опасно
Алексей
идея для стартапа - телеграм бот, который вот таких вот ботов будет автоматически и мгновенно банить
Kakadu
Народ, а в чем глубокофилософский посыл видео про "The Future of Programming"?
Kakadu
Выглядит как посредственный рассказ, завернутый в красивую форму
A64m
не видел такого видео
Kakadu
Ну сегодня же копипастили https://vimeo.com/71278954
Kakadu
Такое оущение, что там какой-то троллинг во всём докладе
A64m
> Bret Victor а, ну понятно
A64m
может я даже и видел это видео или просто похожее
Leonid 🦇
Bret Victor это хиппи с лечебными камнями
Cheese
Народ, а в чем глубокофилософский посыл видео про "The Future of Programming"?
люди несовершенны. больше учись. меньше строй велосипедов
Евгений
> больше учись > меньше строй велосипедов Я чувствую тут противоречие
Евгений
Ну ща бы гегельянцу это рассказывать
Крылатый
Вот да. Без велосипедов сложно и долго понять, как что-то работает.
Евгений
жизнь противоречива
Только обозначенные противоречия нужно зарешать, а не терпеть прост
Cheese
я имел в виду, что не надо творить то, уже сотворено. твори новое. а велосипеды как упражнение нужны, конечно
Евгений
Ну, у большинства работа такая :( Инджой ёр антипиратство и антикопилефт
Cheese
ещё этот доклад о конкретных изобретениях, которые всё ещё актуальны. берите и используйте
Cheese
здесь кто-то хотел линзы в base. они уже есть в Cabal! почти base
Aleksei (astynax)
В cabal они уже какое-то время
Aleksei (astynax)
Для тамошних ADT линзы - прямо таки благословение
Alexander
ну кабал без линз это страшно
Alexander
там такие адские АДТ
Cheese
В cabal они уже какое-то время
да, но мало кто об этом знает
Aleksei (astynax)
Даже тут, в чате кто-то делился знанием об этом :)
Aleksei (astynax)
(м.б. даже я)