IC
ну у меня специфические требования были, тебе наверно и не нужно
IC
если у тебя один процесс лопатит из сокета в очередь, а другой из очереди в сокет, то и линкуй их друг на друга. ведь ни запросы без ответов, ни ответы без запросов не являются рабочим состоянием
Leonid 🦇
у меня из сокета лопатит куда захочет юзер
Leonid 🦇
Считай что клиент может захотеть по треду на стрим, и всё это по одному коннекшену.
Leonid 🦇
И мне нужно и в обработчиках стримов поднять эксепшон, и в треде в который владеет тредом с клиентом
Leonid 🦇
с клиентом который там сокет читает и по очередям стримам раздаёт
Leonid 🦇
дело в том что это может быть один и тот-же тред
Leonid 🦇
Проблемы прода это вам не теоркат и зигохистоморфные препроморфизмы
IC
чот сложнаа
parket
Проблемы прода, как известно, шерифа не интересуют 😂
Leonid 🦇
откуда можно стырить православный менеджер таймаутов?
Leonid 🦇
http://hackage.haskell.org/package/auto-update-0.1.4/docs/Control-Reaper.html#t:Reaper вот эта дичь из Warp?
Ilya
А вот такая мысль сейчас пришла. Почему стримы объявлены не в синтаксисе рекордов? https://hackage.haskell.org/package/Stream-0.4.7.2/docs/Data-Stream.html Вот как можно было бы сделать: import Prelude hiding (head, tail) data Stream a = Cons {head :: a, tail :: Stream a} -- Теперь можно пользоваться синтаксисом обновления рекордов newHead x xs = xs {head = x} -- Теперь можно пользоваться head и tail в левой части клаузов secondElem Cons {tail = Cons {head = x}} = x Преимущества очевидны, недостатки есть? Для классических списков это всё тоже актуально, но хаскель (пока) не поддерживает рекорды с инфиксным конструктором, я попробовал.
Maxim
можно как-то a <- view lens1 magnify lens2 $ smth a записать в одну строку? все происходит в ReaderT foo IO ()
Зигохистоморфный
fmap?
Maxim
м?
Зигохистоморфный
или даже >>=
Maxim
ну я попробовал magnify lens2 $ smth =<< ask lens1, но чёт не компилится
Зигохистоморфный
view lens1 >>= magnify lens2 . smth но я не уверен
Maxim
меня устраивает в две строки, просто любопытно можно ли
Maxim
хм, через композицию видимо надо, да
Зигохистоморфный
хм, а что если views?
Maxim
о, magnify lens1 . smth =<< view lens2
Maxim
интересно что мне скажут на ревью
Anatolii
а кто-то HXT пользовался?
Alexander
@dmalkr
Alexander
насколько я помню
Anatolii
я таблицу html хочу перегнатьв [[String]]
Anatolii
получается только в [String]
Cheese
ну я попробовал magnify lens2 $ smth =<< ask lens1, но чёт не компилится
magnify lens2 $ smth =<< ask lens1 == magnify lens2 (smth =<< ask lens1) почему же это не компилица?
Maxim
ну так lens должен выполняться во внешнем ридере
Maxim
и там все-таки view а не ask
Maxim
а, ты типа намекаешь что скобки надо по-другому поставить
Maxim
ну я и сделал уже :)
Maxim
вообще было бы круто биндить на месте, а не только последний аргумент типа чтобы можно было вместо do a <- getA b <- getB smth a b писать smth (?? getA) (?? getB), где ?? — какой-нибудь особенный синтаксис
Maxim
так вот зачем нужны аппликативы
Alexander
У меня тоже в свое время такое "ага!" случилось. И тоже после монад
Ilya
хотите факториал на хаскеле?
Ilya
fact 0 = 1 fact (n + 1) = (n + 1) * fact n и даже работает Main> fact 10 3628800
cloudedbe
Вот это да
Aragaer
а product 1 .. 10 не?
Ruslan
fact 0 = 1 fact (n + 1) = (n + 1) * fact n и даже работает Main> fact 10 3628800
O_o А при матчинге + можно любой второй аргумент подставить?
Ilya
а product 1 .. 10 не?
тут вся фишка в "+" слева
Ruslan
где-то в хаскеле захардкожено, что (-) это "антоним" (+)? 😭
Ilya
где-то в хаскеле захардкожено, что (-) это "антоним" (+)? 😭
А фиг его знает. Сейчас мастодонты по Haskell98 подтянутся и объяснят
Aragaer
а чем плюс слева лучше минуса справа?
Ilya
а чем плюс слева лучше минуса справа?
типа структурная рекурсия же. представь, что +1 это Succ
Ruslan
А фиг его знает. Сейчас мастодонты по Haskell98 подтянутся и объяснят
ну просто как-то же он должен из полученного 10 сделать 9, имея на руках (n + 1) =)
Ю ли я? 🤔
тут вся фишка в "+" слева
Его же выпилили в 2010?
zool
NPlusKPatterns ?
Ю ли я? 🤔
Угу
Ruslan
NPlusKPatterns ?
спс, TIL
Alexander
NPlusKPatterns ещё не выпилили?
Ilya
NPlusKPatterns ещё не выпилили?
я это вообще hugs компилировал :)) в ghc 7.10.3 не заработало
Ruslan
оно исключительно с плюсом работало, насколько я понял?
Alexander
вроде какой-то набор операций ограниченный
Alexander
есть ViewPatterns если нужно разное и хитрое
Alexander
но то, что можно написать с N+K так же красиво не получится
Alexander
с другой стороны расширение сделанное ради красивой статьи это не самая полезная штука
A64m
NPlusKPatterns ещё не выпилили?
как расширение? нет конечно и не собираются (оно не задепрекейчено)
Alexander
печалька какая
A64m
у этого расширения есть лютые хейтеры
Ruslan
пнял )
Alexander
ViewPatterns FTW
A64m
имитация n+k на них выглядит страшно
Alexander
да
A64m
ghcjs сделали сразу и 8.2 и 8.4
IC
ghcjs сделали сразу и 8.2 и 8.4
Не пропадать же добру?..
Ю ли я? 🤔
Если расширение - это добавление чего-то в язык, то NoNPlusKPatterns - это сужение? *филосораптор.жпг*
Alexander
как правильно PosixTime превратить в CTime?
Alexander
которое NominalDiffTime
Alexander
Если расширение - это добавление чего-то в язык, то NoNPlusKPatterns - это сужение? *филосораптор.жпг*
Тут сторонники Оберона хвастались, что только Вирт может улучшать язык, выкидывая из него функциональность. Но Хаскель тоже так может!