@haskellru

Страница 393 из 1551
Aleksey
07.09.2017
06:58:11
А так то String в данном случае может даже быть ок - если каждую строку проходить один раз. Ещё бы файлик разбирать построчно

Разбор файлика построчно вместо lines/unlines, на мой взгляд, самое первое изменение, которое стоит сделать

Dmitry
07.09.2017
07:00:40
может всё-таки, если задача не учебная, взять какую-нибудь cassava и ей разобрать файл?

ей же и собрать

Google
Aleksey
07.09.2017
07:01:23
cassava умеет ряд просто в список декодить, да и разделитель там можно переопределить

И "шапку" отбрасывать умеет, конечно

Vasiliy
07.09.2017
07:03:48
а можно написать императивненько

всё равно cutExtraFields возвращает IO ()

Dmitry
07.09.2017
07:04:16
итого, рекомендации в порядке: 1) взять готовую библиотеку 2) переписать на Text или ByteString 3) работать с файлом построчно

Vasiliy
07.09.2017
07:04:18
можно не пересобирать весь файл, а выводить куски по мере чтения

но вообще, конечно, взять cassava, если файл большой, приделать pipes или conduit

Aleksey
07.09.2017
07:05:07
итого, рекомендации в порядке: 1) взять готовую библиотеку 2) переписать на Text или ByteString 3) работать с файлом построчно
я бы 2 и 3 местами поменял. Возможно вариант на String при переводе на построчную обработку будет уже ок

Dmitry
07.09.2017
07:05:25
0) забыть, что есть тип String

Aleksey
07.09.2017
07:05:28
Dmitry
07.09.2017
07:05:31
навсегда.

Aleksey
07.09.2017
07:06:17
Да ладно! Нужно просто помнить, что String, это linked list со всеми вытекающими :)

Иногда очень даже удобная штука :)

Google
Dmitry
07.09.2017
07:07:18
когда?

паттерн матчинг + рекурсия?

Aleksey
07.09.2017
07:08:06
ага

Dmitry
07.09.2017
07:08:38
это заканчивается аттопарсеком

Vasiliy
07.09.2017
07:08:53
когда опечатался и вместо <> написал >> > "hello " >> "world" "worldworldworldworldworldworld"

Aleksey
07.09.2017
07:09:10
Нужно просто алиас type String = [Char] выпилить :)

Ksenia
07.09.2017
07:22:47
спасибо большое

Dmitry
07.09.2017
07:23:01
и каков же выбранный путь?

Ksenia
07.09.2017
07:24:12
1) для будущего: прочитать Марлоу, не использовать string, использовать готовую библиотеку для работы с csv/psv

2) ну а на текущий момент, так как задача насущная использовать awk

Alexander
07.09.2017
07:43:56
String норм иногда, особенно если он constant и известен при компиляции, тогда он радостно превращается в CString, впрочем и для всего low level (System.*) в base он тогже никогда в linked list может не превращаться

Андрей
07.09.2017
12:00:36
Я наконец-то морально созрел для установки Убунты на мою Винду 7 (ради Хаскеля). Правильно понимаю, что лучше это сделать через виртуальную машину, а не рядом еще одну ОС и выбирать при старте? Если через виртуалку - то вот здесь http://www.instructables.com/id/Introduction-38/ советуют скачать последнюю Оракловую. Но у меня всреди установленных программ есть уже Windows virtual PC. Мне лучше использовать ее, или скачать ту по ссылке? Это одна и та же програама, но скачанная версия будет новее, или это вообще разные производители (Оракл и Майкрософт)? И что тогда ставить? (Куда ставить-то? (С) Добро пожаловать или посторонним вход воспрещен )))))

Евгений
07.09.2017
12:02:26
А не проще VPS'ку купить, если Вам GUI не нужен?

Daniel
07.09.2017
12:02:39
the easiest way - virtualbox + vagrant (найти любой понравившийся образ) но я и на венде проблем не видел с хаскеллем, хотя и не плотно его использую

Андрей
07.09.2017
12:04:35
Ну началось ) Пойду гуглить что такое VPS. Насчет ГУЯ - не уверен, что не нужен. Заодно и про Вагрант погуглю. Я думал подойти просто - поставить виртуалку, и на нее накатить Убунту.

Евгений
07.09.2017
12:05:02
Ну мне кажется, что виртуалка это геморно

Андрей
07.09.2017
12:05:07
Оффтоп? Потому что не ИДЕсрач? ))))

Dmitry
07.09.2017
12:05:59
виртуалка с линуксом на винде, что бы учить хаскель - это настоящее мужество

Google
Андрей
07.09.2017
12:06:06
Снести Винду не вариант. А виртуалку как раз можно вроде безболезненно сносить если что.

Vadim
07.09.2017
12:07:12
всем привет

Mikhail Subbotin
07.09.2017
12:08:47
Aleksey
07.09.2017
12:11:31
В Вагрант ещё и IHaskell можно сбоку подпихнуть

Андрей
07.09.2017
12:13:44
Спасибо, уже двое упоминают Вагрант - буду гуглить что это за зверь

Donat
07.09.2017
12:15:26
Vagrant это всего лишь обертка для virtualbox

Aleksey
07.09.2017
12:16:29
Фасад над системами виртуализации типа VirtualBox, позволяющий получить что-то типа Linux в терминале - для запуска компилятора, например, но при этом иметь возможность редактировать исходники привычными средствами, имея папку с сорцами на хостовой ОС

Под виндой возможно лучше себя покажет VMWare в качестве бэка для Вагранта

Андрей
07.09.2017
12:18:34
А при обычной виртуалке без Вагранта разве у меня она не будет локализована в своем отдельном окне, а все русурсы (файлы) расшарены с доступом отовсюду?

Aleksey
07.09.2017
12:20:30
В отдельном окне будет и рабочий стол той же убунты, ну или тамошний терминал. Это не то.

Vagrant запускает виртуалку "в фоне" и дает возможность сходить на неё по ssh

Ну и вагрант форсит disposablilty - чуть что, делаешь vagrant destroy + vagrant up и виртуалка как новая

Alexander
07.09.2017
12:22:00
так а обновить до win 10 и юзать WSL не вариант?

https://blogs.msdn.microsoft.com/commandline/2017/02/09/haskell-on-bashwsl/

Андрей
07.09.2017
12:22:18
Ничесе. Спасибо, придется действительно изучать эти технологии виртуализации.

Винда 10 не спасет отца русской демократии - нужна целевая ОС Убунта.

Aleksey
07.09.2017
12:23:56
так а обновить до win 10 и юзать WSL не вариант?
Думаю, что авторы того же stack винду именно в таком разрезе вряд ли мыслят, так что запросто может получиться, что в этом варианте будет проблем столько же, сколько в "чистой" винде и линуксах вместе взятых :)

? animufag ?
07.09.2017
12:24:31
так а обновить до win 10 и юзать WSL не вариант?
а это реально ок работает. я помню дважды пытался всё настроить и как-то обламывался

Aleksey
07.09.2017
12:25:20
Винда 10 не спасет отца русской демократии - нужна целевая ОС Убунта.
Вот как раз штуки типа vagrant это и позволяют - разработчик может сидеть в комфортной ему ОС, а разрабатывать на ОС нужной для продакшна

Google
? animufag ?
07.09.2017
12:25:23
https://blogs.msdn.microsoft.com/commandline/2017/02/09/haskell-on-bashwsl/
это вообще что-то нереальное. как на сайте майкрософта могла оказаться статья мол ставим хаскель в баше

Alexander
07.09.2017
12:25:40
а это реально ок работает. я помню дважды пытался всё настроить и как-то обламывался
я не особо юзал, не могу ничего утверждать ( но если цель чисто поиграться - то думаю вполне стоит попробовать

Aleksey
07.09.2017
12:25:44
Это же MSDN

Alexander
07.09.2017
12:25:57
Alexander
07.09.2017
12:26:19
ну а хаскель делается в MS ресерч наполовину :) так что почему бы нет

Aleksey
07.09.2017
12:27:00
MS как раз и хочет, чтобы в т.ч. и для Linux разрабатывали из под винды, раз уж всё равно в Azure тоже линукса гоняют. Так что мелкософту неплохо от таких статей

? animufag ?
07.09.2017
12:27:30
это же MSDN
мсдн ассоциируется со статейками мол настраиваем конекшон с mssql в вижуал студии и инструкция как от бытовой техники.

Aleksey
07.09.2017
12:27:57
в MSDN всегда много дельфистов было, например :)

Андрей
07.09.2017
12:33:33
Я скопипастил тред, буду разбирать и решать что и как ставить. Вагрант похоже будет не лишний, но под него VMWare или Virtual PC или Оракловскую виртуалку - придется еще поспрашивать. Спасибо, заканчиваю оффтоп ,можем продолжать традиционный онтоп про ИДЕ.

Aleksey
07.09.2017
12:56:09
Он все три умеет

Alexander
07.09.2017
13:10:04
WSL научился haskell программы пускать

помнится год назад они падали т.к. не все сисколы были реализованы

Bohdan
07.09.2017
15:24:40
Как прикрутить в маппер usleep из Unistd, чтобы он выполнялся с задержкой? main = do g <- getStdGen mapM_ (putrStrLn . currentSpeed) (randInt g)

Yuriy
07.09.2017
15:34:06
@bodqhrohro, сделай эта-расширение функции под мапом

Bohdan
07.09.2017
17:42:19
@bodqhrohro, сделай эта-расширение функции под мапом
В do-нотации вышло, а однострочником прибиндить не осилил. Я лалка?

Vasiliy
07.09.2017
18:00:26
тут другую надо рассахаривать же

внутрь mapM_ нужно засунуть (\x -> sleep 10 » (putStrLn . currentSpeed) x)

Aleksey
07.09.2017
18:02:22
(sleep 10 >>) . putStrLn . currentSpeed не?

Vasiliy
07.09.2017
18:02:43
ага

Google
Vasiliy
07.09.2017
18:03:16
признаюсь, я ниасилил

воспользовался pointfree.io

Aleksey
07.09.2017
18:03:36
Э.. тут то элементарно же!

pointfree.io - плохая штука

Vasiliy
07.09.2017
18:05:15
я сначала написал именно через do - do sleep 10; putStrLn (currentSpeed x)

Aleksey
07.09.2017
18:05:18
простые вещи можно и без неё, а сложные - не нужно, иначе станут ещё сложнее

Vasiliy
07.09.2017
18:05:27
это сюда уже с оператором и скобками

в do сходу вообще не очевидно

согласен, даже в этом случае я бы написал forM_ (randInt g) $ \x -> do ...

Aleksey
07.09.2017
18:06:38
Но тут то g точно можно вынести!

Vasiliy
07.09.2017
18:06:39
потом самому же этот код читать

Aleksey
07.09.2017
18:07:42
А можно сделать randInt <$> getStdGen и сразу получить IO Int

Только что-то randInt странно выглядит - он ведь не число возвращает, а список чисел, судя по mapM_. Если это так, то название функции - плохое

Index
07.09.2017
18:24:06


ко-ко-корректность, ха-ха-хаскель

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