@haskellru

Страница 1172 из 1551
Alexander
08.05.2018
15:45:35
не прилетит

Leonid
08.05.2018
16:39:28
http://hackage.haskell.org/package/alarmclock - удобно, рекомендую

Alexander
08.05.2018
16:41:46
подлый бос так ничего и не ответил, форкнуть что-ли к чертям

Leonid
08.05.2018
16:44:10
корочи добавил uninterruptibleMask на хрень которая читает-пишет IORef, это же ничем не грозит? Оно же только на MVar/TVar опасно?

Google
Александр
08.05.2018
16:44:44
Пишется с двумя r ;)

Leonid
08.05.2018
16:44:59
Leonid
08.05.2018
16:47:32
как тестировать менеджер таймаутов?

треды и жесть - шестьсот шестьдесят шесть

Alexander
08.05.2018
16:54:10
дежафю?

или eventlog собирать (надо попробовать кстати)

а то с тестами с таймаутами всегда проблемы

Rustem
08.05.2018
16:56:22
Здрасте

Ruslan
08.05.2018
16:58:08
@Masteroid @rustem_b

деритесь за аватарку )

Rustem
08.05.2018
16:58:58
?

Ruslan
08.05.2018
16:59:29
вот так заходишь в толпу незнакомых хаскелистов, а там... )

Google
Ruslan
08.05.2018
17:01:14
коллизии

Rustem
08.05.2018
17:01:18
так, привет ещё раз, я знаю Python, но решил выучить Haskell дабы познать прелести функционального программирования (если буду в питоне, то мой код будет только из циклов состоять)

посоветуйте что-нибудь

Ruslan
08.05.2018
17:01:59
от циклов?

Rustem
08.05.2018
17:02:08
да

Ruslan
08.05.2018
17:02:41
Мне щас могут напинать, конечно, но есть вот это: http://learnyouahaskell.com/chapters

Rustem
08.05.2018
17:02:50
как например что-нибудь сделать N раз?

IC
08.05.2018
17:02:59
или eventlog собирать (надо попробовать кстати)
И темпоральной логикой по нему ездить :3

Rustem
08.05.2018
17:03:36
Мне щас могут напинать, конечно, но есть вот это: http://learnyouahaskell.com/chapters
вот я его и читаю, но можете ещё объяснить, что такое (.)

для чего этот оператор нужен?

Ruslan
08.05.2018
17:04:23
Есть ещё такое: http://haskellbook.com/

Alexander
08.05.2018
17:05:04
для чего этот оператор нужен?
оператор композиции в математике знаешь?

Rustem
08.05.2018
17:05:14
нить

Alexander
08.05.2018
17:05:16
f ° g?

Mikhail
08.05.2018
17:05:18
Подскажите, как взять в pandoc переменные из обработаного маркдауна и передать writer'у ?

Alexander
08.05.2018
17:05:35
f . g = \x -> f (g x)

Ruslan
08.05.2018
17:05:39
опоздал )

Alexander
08.05.2018
17:06:00
зачем нужен, чтобы писать код читабельнее и короче

полезно в анонимных функциях

Google
Ruslan
08.05.2018
17:06:40
((+1) . (*2)) 3 => 7

Rustem
08.05.2018
17:07:07
f (g x) = (f . g) x
тоесть: ты перечисляешь порядок выполнения функций (справа) а потом аргументы, и он тебе так и сделает?

Alexander
08.05.2018
17:07:36
нет

Rustem
08.05.2018
17:07:57
а в чем прикол между этим и f $ g x

Alexander
08.05.2018
17:08:24
то, что это разные вещи

f $ g = f g

Rustem
08.05.2018
17:08:36
эх

Ruslan
08.05.2018
17:08:56
тоесть: ты перечисляешь порядок выполнения функций (справа) а потом аргументы, и он тебе так и сделает?
как паровозик справа налево будет складываться. Результат последней функции станет аргументом предпоследней, а её результат - аргументов следущей

$ это чтобы то же самое можно было без скобок написать, типа: (+1) . (*2) $ 3 => 7

Rustem
08.05.2018
17:10:05
так, всё оказалось давольно сложно чем я думал

The mirror
08.05.2018
17:11:20
эх
если тебе нравится подход с видео презентациями вместо книг, то могу посоветовать этот курс. я пока не писал ничего серьезного на haskell, но немного работал со scala https://stepik.org/course/75

Rustem
08.05.2018
17:12:24
о Боже, забери меня обратно в каваи мир питона

Ruslan
08.05.2018
17:12:55
курс по Скале кстате сильно помогает потом Хаслель воспринимать

императивщикам

типа меня

Rustem
08.05.2018
17:13:25
чувааак, ты с чего начал?

The mirror
08.05.2018
17:13:36
курс по Скале кстате сильно помогает потом Хаслель воспринимать
мне как-то наоборот, тайпклассы и композиция функций легче дается в haskell, чем в scala

чувааак, ты с чего начал?
на coursera есть курсы по Scala, еще можно почитать SICP

Rustem
08.05.2018
17:14:21
*а я петон...*

Google
Ruslan
08.05.2018
17:14:47
мне как-то наоборот, тайпклассы и композиция функций легче дается в haskell, чем в scala
типы данных и чистота функций в целом заходят и так наура, если мозг в эту сторону повёрнут, это да. Курс по Скале помогает алгоритмы по другому представлять

только он усыпляет очень хорошо )

Rustem
08.05.2018
17:15:45
у кого какой самый первй ЯП?

(исключая паскаль и бейсик)

Ilya
08.05.2018
17:16:24
Rustem
08.05.2018
17:16:33
?

Александр
08.05.2018
17:23:35
Оператор композиции (.), похожий на один вожделенный мужчинами объект, проще понимать на примере текста и манипуляции с ним

myText :: String myText = "ABC123" transformation :: String -> String transformation = surroundByBrackets . lowercase . lettersOnly -- Will be "(abc)" transformedText :: String transformedText = transformation myText

Вот эта связка - surroundByBrackets . lowercase . lettersOnly - это функция от одного аргумента, которая протаскивает этот аргумент справа налево через все внутренние функции

Yuuri
08.05.2018
17:27:12
как например что-нибудь сделать N раз?
replicateM, но вообще зависит от задачи.

Ilya
08.05.2018
17:27:41
^ пошла токсичность ?

Александр
08.05.2018
17:28:02
Вижу

Александр
08.05.2018
17:29:57
Ну и все внутренние функции, соответственно, тоже от одного аргумента. Потому что мы можем эту связку наращивать или сокращать, если нужно

Евгений
08.05.2018
18:12:12
https://www.tiobe.com/tiobe-index/ скала пробилась в топ-20, лютая победа около-фп

A64m
08.05.2018
18:26:31
такое с тиобе бывает постоянно, какой-то язык выскакивает в топ, а потом падает обратно, можно не обращать внимания, методика там адская

Андрей
08.05.2018
18:39:05
вот сегодня старый добрый чатик - заходят люди незнакомые с функторами и ~сись~ прочими композициями, ахают как сложно.... не то что 1Е3 сообщений про алгебру на типах с профункторами

Oleg
08.05.2018
19:12:44
вы проста завидуите оххоххоххо

Google
Aleksei
08.05.2018
19:49:16
Ребят, может немного помочь? Немного тупой вопрос, только начал учить Есть какой-то список и какая-то стрелка Клейсли let list = [1..4] let k = \x -> [x*2] Почему list >>= k отрабатывает без ошибок, а do {arr; k} падает? Как заставить это дело через do-нотацию работать?

Aleksey
08.05.2018
19:50:36
Что получится, если рассахарить do { arr; k }?

Aleksei
08.05.2018
19:53:24
Я так понял, что это тоже самое, что через bind, но можно еще вытащить промежуточное значение do arr arr2 <- k arr3 <- k

Aleksey
08.05.2018
19:53:43
arr >> k т.е. arr >>= \_ -> k ("отбрасываем результат предудущего шага и делаем следующий")

а нужно сделать arr >>= k, т.е. arr >>= \x -> k x, или в do-нотации do x <- arr k x

Pineapple
08.05.2018
19:56:36
Из чистой вредности λ> :t do { const list ; k } do { const list ; k } :: Num b => b -> [b]

Aleksey
08.05.2018
19:57:52
это другая монадка уже (в вопросе - [], тут - (->) r)

Pineapple
08.05.2018
19:58:11
Зато таинственно тайпчекается

Aleksei
08.05.2018
20:05:35
Сработало. А промежуточное значение разве не должно и так в след функцию бросаться? Мы же не пишем arr >>= (\x -> k x), а просто arr >>= k

а нужно сделать arr >>= k, т.е. arr >>= \x -> k x, или в do-нотации do x <- arr k x

Maxim
08.05.2018
20:07:17
тебе не кажется, что \x -> k x и k это одно и то же? :)

Aleksei
08.05.2018
20:09:01
Кажется. Вот поэтому и спрашиваю, почему мой исходный вариант не работал, а вариант @astynax сработал. В чем разница?

Pineapple
08.05.2018
20:09:56
А что можно использовать чтобы гонять CI на винде для опенсорца на гитхабе?

Maxim
08.05.2018
20:10:04
appveyor

Pineapple
08.05.2018
20:10:38
Спасибо

IC
08.05.2018
20:23:05
Кажется. Вот поэтому и спрашиваю, почему мой исходный вариант не работал, а вариант @astynax сработал. В чем разница?
a; b рассахаривается в a >> b, а не в a >>= b. (>>) не требует от правой (т.е. следующей после ;) функции принимать аргумент

Aleksey
08.05.2018
20:25:17
> А промежуточное значение разве не должно и так в след функцию бросаться? не должно. do foo x <- bar baz x рассахаривается в foo >>= \_ -> bar >>= \x -> baz x никакого магического "и так" нет. Всё передаётся только явно

Страница 1172 из 1551