Anonymous
Bimap через dimap - никак.
Зигохистоморфный
Anonymous
Да как-то оно не вяжется с теорией FRP - события-то существуют только в определённые моменты. А здесь какая-то хитроумная конструкция. Видимо для того, чтобы поднять в аппликатив.
Зигохистоморфный
ну как бы да, чтобы сделать инстанс аппликатива
Anonymous
Проблема в том, что событие аппликативом не является. Он здесь, по сути, преобразовал их в behavior'ы (которые существуют в каждый момент времени), и хотя технически законы аппликатива должны работать - выглядит это хаком.
Зигохистоморфный
Зигохистоморфный
ах! у event нельзя выразить pure
Aleksei (astynax)
Событие происходит во времени. Смысл складывать две чиселки-события, если они в разное время приходят?
Aleksei (astynax)
Только если складыватель будет с защёлками
Aleksei (astynax)
Но это уже не события какие-то получаются
Зигохистоморфный
ну выходит у Event только Functor
у Behavior - Monad,Applicative,Functor
Aleksei (astynax)
Это больше "значения во времени", которые помнят последние мгновенное значение и распространяют по сети подписчиков изменения. Тогда аппликативное применение будет производиться по изменению любого из аргументов (для других берутся последние значения)
Зигохистоморфный
но в purescript есть Apply и есть Applicative
Vasiliy
ну почему же, например событие "дабл-клик" складывается из двух событий "клик"
Aleksei (astynax)
нет события никакого. Есть MouseDown :: InTime Bool
Aleksei (astynax)
"клик" - это уже обработка с состоянием
Anonymous
Сложно сказать. Когда ты в теории хочешь сделать apply двум событиям, у тебя то одного нету, то другого.
А с Behavior не всё так просто. Если события возникают дискретно, то изменения behavior'а засечь невозможно - разве что хранить в нём образующее событие и делать sampleOn (merge f.event x.event) в apply
Зигохистоморфный
Aleksei (astynax)
Это Cell если уж у нас FRP, т.е. ячейка "как в Excel" которая всегда хранит значение
Aleksei (astynax)
И уведомляет заинтересованных об изменении значения
Aleksei (astynax)
apply т.о. слушает две ячейки и по сигналу от любой меняет своё значение на результат применения функции к текущим значениям обеих ячеек
Зигохистоморфный
ну есть Signal oriented, Behavior oriented, Cell там много разных реализаций
Aleksei (astynax)
Раз уж сигналы вспомнили, то MouseDown - сигнал
Aleksei (astynax)
Т.е. непрерывный поток состояний кнопки мыши
Aleksei (astynax)
А ещё, помнится, есть деление на дискретный FRP и непрерывный :)
Зигохистоморфный
я ща использую https://github.com/reflex-frp/reflex
Alex
тру FRP типа непрерывный, дискретный по науке так и называют - synchronous discrete programming
Alex
это где lustre, signal, lucid ватэтавсё
Aleksei (astynax)
зато дисктретку делать просто
Aleksei (astynax)
И для многих задач её хватает. А ещё дискретка хороша для эмбеддеда, там можно проснуться, просчитать тик графа и уснуть
Зигохистоморфный
рефлекс нормик)
Serghei
эх
Serghei
опять амазон лег
Serghei
и jira
Serghei
и видимо опять все кто исползует s3
Serghei
второй раз на те же грабли
Anonymous
Главное, чтоб данные лежали не в memcached
Serghei
http://prntscr.com/g1028k
Serghei
и второй раз ребята говорят у нас все хорошо
Dmitry
а кто псил на zero mq
Dmitry
напомните, почему?
Anonymous
Поиск только @qnikst выдаёт, и тот говорил, что zmq ломается на каждом шаге
Alexander
я
Alexander
и @Shimuuar
Alexander
у него проблемы с интеграцией с рантаймом
Alexander
@voidlizard ^^
Dmitry
с каким именно рантаймом?
Alexander
хацкелтным
Alexander
зеромку свою недортс тащит с eventloop и всеми делами
Alexander
которая ещё и не threadsafe нифигп
Dmitry
ух. не, такого не надо
Alexander
в общем если осторожно из bound thread и т.п. все будет работать
Anonymous
Так он ещё и на плюсах. Хорошо, что GHC рантайм setjump/longjmp не делает, как окамловский, а то вообще бы не работало.
Alexander
это да
кана
Вот скажите мне, является ли какой-нибудь тип хаскеля категорией?
кана
Категория - это же по сути любое обобщение, в том числе и множество значений целых чисел Int
Oleg
кана
нет?
Зигохистоморфный
кана
А почему типы не образуют свою внутреннюю категорию?
Oleg
Вот все типы - это хаск, который нарушает ассоциативность из-за ерроров
Зигохистоморфный
Oleg
из-за жоп?
гуглится же
https://wiki.haskell.org/Hask
Зигохистоморфный
Vasiliy
из-за жоп?
наверное, более правильным переводом будет "днище"
Зигохистоморфный
))) http://nponeccop.livejournal.com/201455.html
Anonymous
Конечный код на Хаскель обычно получается больше, чем аналог на Питоне к примеру? Или напротив лаконичней?
Anonymous
*в среднем
Anonymous
Я в учебнике где-то видал сравнение с Си, мол глядите как тут(в Хаскель) коротко и проще.
Но на другом ресурсе увидел пример работы с файловой системой. Где очевидно всё было мудреней, и как то избыточно на первый взгляд. Не функциональщика. По этому и вопрос.
Влод
Думаю питон изи побеждает по лаконичности, особенно если работа с файлами
Влод
А ещё лучше перл
Anonymous
руби же
Влод
Не
a66ath
J
Алдар
Питон динамически типизирован, у него код по определению должен быть короче
Anonymous
Сейчас вот пишу маленький фреймворк на питоне с readline и взаимодействием с файлами, и появилось желание попробовать в качестве обучения Хаскель - на нём это переписывать. Не знаю где Хаскель проявит свои сильные стороны, если говорить о первых тестовых работах, неприятно если это сходу будет нагромождением.
Sergey
Artyom
gitter.im/ruHaskell/forall
Sergey