@haskellru

Страница 726 из 1551
Valeriy
04.01.2018
13:27:15
Мне LYAH совсем не зашла, скучно и стиль учебника для младших классов. Beginning Haskell интересней идет, но местами кажется перегруженной всякими расширениями и разным синтаксисом

Anton
04.01.2018
14:12:07
А мне очень нравится Get programming in Haslell (или как то так) by Will Kurt (Manning) она не большая, практической направленности и каждая глава заканчивается кэпстоун проджектом с подробным описанием что к чему.

Kirill
04.01.2018
14:21:03
@qnikst вы на 8.2 ещё не переползали?

я тут под НГ занялся миграцией

Google
Alexander
04.01.2018
14:21:21
на одном проекте только

вроде все просто взлетело

Kirill
04.01.2018
14:21:40
и время компиляции прям никакое

ну и про баг который Дениса укусил я вроде писал перед НГ

Alexander
04.01.2018
14:36:17
ага

у нас тайплевел ада нету

что упрощает жизнь

Dmitry
04.01.2018
14:37:09
а как вы живете без тайплевел ада? сервант вполне себе тайплевел ад. ну т.е бывает хуже. но вот

Alexander
04.01.2018
14:42:36
серванта не было, до пары недель назад

сейчас есть но там 4 эндпоинта

ну больше но порядка 10, что совсем мало

Kirill
04.01.2018
14:49:21
тормоза основные почему-то не в тайплевел аде судя по всему

как ни странно в TH от персистента, хотя вопрос только ли TH виноват

Google
Alexander
04.01.2018
14:55:21
вот ТХ у нас много

Kirill
04.01.2018
14:56:59
ну вот например

янв 04 17:54:04 [72 of 91] Compiling Database.TLDR.Stats.Model ( src/Database/TLDR/Stats/Model.hs, .stack-work/dist/x86_64-linux-tinfo6/Cabal-2.0.1.0/build/Database/TLDR/Stats/Model.o ) янв 04 17:55:43 [73 of 91] Compiling Database.TLDR.Stats ( src/Database/TLDR/Stats.hs, .stack-work/dist/x86_64-linux-tinfo6/Cabal-2.0.1.0/build/Database/TLDR/Stats.o )

т.е. минута сорок

около 20 табличек

при этом есть ещё одна "моделька" примерно такого же объёма

и оно меньше секунды компилится

kana
04.01.2018
15:02:14
такие проблемы же только на каких-нибудь изолированный сборках, в деве же можно инкрементально?

Kirill
04.01.2018
15:06:44
расшифруй?

kana
04.01.2018
15:08:14
ну то есть не обязательно же в деве собирать модули, которые не поменялись (следовательно и TH не нужно перезапускать)?

Alexander
04.01.2018
15:11:52
когда разрабатываешь это не большая проблема, а проблема если только на CI

Kirill
04.01.2018
15:16:31
про CI и речь была

но вроде прогнал тот же билд и дельта не такая катастрофическая на том пакете

4 минуты на 8.2 против 3 на 8.0

при том что заявляли о том, что GHC стал быстрее

A64m
04.01.2018
15:28:53
ну на их бенчмарках стал, а качество бенчмарков там и по времени компиляции и по производительности кода оставляют желать много лучшего, скажем так

а каких-то заметных изменений (в меньшую сторону) времени компиляции я бы не ждал

Aleksey
04.01.2018
19:01:34


В Эльме будет больше дичи, походу

Google
GNU/Maybe
04.01.2018
19:11:22
Это шутка, я надеюсь?

Pig
04.01.2018
19:22:00
На самом деле нужны только пары, пустые кортежи и немножко синтаксического сахара

Aleksey
04.01.2018
19:28:38
GNU/Maybe
04.01.2018
19:30:41
Dmitry
04.01.2018
19:31:33
> На самом деле нужны только пары, пустые кортежи и немножко синтаксического сахара еще хэшмапа, 21 век же

Vitaly
04.01.2018
19:39:46
Пары это синтаксический сахар над лямбдой двух аргументов же

GNU/Maybe
04.01.2018
19:53:10
@qnikst спам?

Alexander
04.01.2018
20:14:38
fixed

GNU/Maybe
04.01.2018
20:16:31
?

Val
04.01.2018
21:20:45
А как правильно написать ф-ю, которая будет: 1. Запрашивать ввод через getLine 2. Сверять его с условием (x == 1, например). Если неверно - на п.1 3. Если верно - вернуть число 2

Anatolii
04.01.2018
21:34:35
Было бы хорошо скинуть что-то что уже есть в наличии

А тут бы уже подсказали что поправить

Anatolii
04.01.2018
21:35:07
А то так сложно что-то сказать кроме как готовое написать

Val
04.01.2018
21:54:18
У меня из готового только свои исходники на Python есть :D Пытаюсь это же на Хаскеле переписать, чтобы посмотреть как оно выглядеть будет

Антон
04.01.2018
21:57:51
Оно так не работает. В лоб алгоритм перенести, конечно, можно, но выглядеть будет так себе

Val
04.01.2018
22:02:10
module Main where import Control.Monad (unless) prompt :: IO () prompt = do putStrLn "Enter 1 or 2:" l <- getLine unless (l == "1" || l == "2") $ do putStrLn "Wrong number." prompt putStrLn $ "Your number is " ++ l main = prompt

Вроде того. Только в последнем выводе все введённые значения выводятся. Грубо говоря я пытаюсь понять, как без привычного while это сделать

Переписал на module Main where prompt :: IO () prompt = do putStrLn "Enter 1 or 2:" l <- getLine if l == "1" || l == "2" then putStrLn $ "Your number is " ++ l else do putStrLn "Wrong number.\n" prompt main = prompt Теперь думаю, как не распечатать, а вернуть Int из ф-и prompt

kana
04.01.2018
22:12:24
pure l

prompt :: IO Int prompt = do putStrLn "Enter 1 or 2:" l <- getLine if l == "1" || l == "2" then pure $ read l else do putStrLn "Wrong number.\n" prompt

Google
Sergey
04.01.2018
22:17:03
народ, как выбрать кортеж из списков кортежей, который является наибольшим по второму значению?

kana
04.01.2018
22:18:26
last . sortOn snd head . reverse . sortOn snd

можно еще через maximumBy maximumBy (compare `on` snd)

Val
04.01.2018
22:20:34
@kana_sama Спасибо, помогло

Dmitry
04.01.2018
22:20:40
Я бы не рекомендовал использовать функцию last. Лучше отсортировать по убыванию сразу.

Sergey
04.01.2018
22:24:20
для ясности, я делаю задание для определения буквы, которая чаще всего встречается и ignoreCase

mostFrequenceChar str = [(letter, count) | letter <- ['a'..'z'], let count = length (filter (== letter) lowerCaseStr), count > 0] where lowerCaseStr = map (toLower) str

извиняюсь, не знаю, как красиво вставить код

Admin
ERROR: S client not available

Sergey
04.01.2018
22:25:27
на данный момент функция производит список кортежей с частотами (буква, частота)

Антон
04.01.2018
22:25:53
Обрамляй bactick'ами: `

kana
04.01.2018
22:26:03
тройными

Denis
04.01.2018
22:26:21
для ясности, я делаю задание для определения буквы, которая чаще всего встречается и ignoreCase
ты строишь гистограмму? распределения частот повторения букв?

Антон
04.01.2018
22:26:25
тройными
Да. Это если на несколько строчек

Denis
04.01.2018
22:27:39
да
group

да
как-то так? fmap (\x -> (head x, length x))$ group $ sort "test as test"

Sergey
04.01.2018
22:31:40
да, типо этого, только ignoreCase букв и только isAlpha

Pig
04.01.2018
22:31:52
слишком много $ и ни одного &&&

Google
Sergey
04.01.2018
22:32:05
но в любом случае, спасибо, буду разбираться)

Denis
04.01.2018
22:35:39
слишком много $ и ни одного &&&
я мог написать так) но стрелки думал будет жестко)

Антон
04.01.2018
22:36:30
я мог написать так) но стрелки думал будет жестко)
Да ладно, это ж просто комбинатор. Строго говоря, он вообще со стрелками не связан

Denis
04.01.2018
22:37:43
Ignat
04.01.2018
22:43:14
наверное, разумнее сначала пофильтровать, а потом уже сортировать

Pig
04.01.2018
22:43:30
+

Ну и точек

Denis
04.01.2018
22:45:18
хватит придираться)

Pig
04.01.2018
22:45:33
Haskell без композиции — деньги на ветер

Denis
04.01.2018
22:46:55
хотите перформанс - юзайте multiset MS.toOccurList . MS.filter isAlpha . MS.fromList $ "test as test"

Ignat
04.01.2018
22:54:43
прикольн))

Val
04.01.2018
23:53:19
Клёвый язык. 2 часа пытаюсь Int от пользователя в ф-ю передать

Taras ?
04.01.2018
23:54:28
? прям как я вхожу в регулярки

Val
04.01.2018
23:56:08
@xgrommx Там, судя по гуглу, довольно популярный запрос %) Как IO Int в Int перевести

Ignat
04.01.2018
23:56:31
нужна какая-нибудь паста

про «ты СОВЕРШЕННО не понимаешь сути IO»

Denis
04.01.2018
23:57:05
про «ты СОВЕРШЕННО не понимаешь сути IO»
думаю про монадки было бы лучше)

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