Size: a a a

2020 December 04

JS

Jerzy Syrowiecki in Haskell Start
1. есть пакеты, являющиеся частью самого GHC и/или RTS
2. base
3. core libraries
4. There are libraries that are considered core which do not ship with GHC. [1]
5. There are libraries that ship with GHC, but are not considered core. [1]
6. Haskell Platform
7. пакетные менеджеры себе на уме
8. Stackage
9. Hackage
10. дикие пакеты, не выложенные на Hackage
11. корпоративные закрытые репозитории


[1]: https://wiki.haskell.org/Core_Libraries_Committee
источник

JS

Jerzy Syrowiecki in Haskell Start
но при испольховании stack/cabal разницей почти всегда можно пренебречь
источник

AP

Aleksei (astynax) Pi... in Haskell Start
Ну вот в репозиториях для ОС часто вариант №5 соответствует "ghc" и отдельно идёт платформа.
источник

JS

Jerzy Syrowiecki in Haskell Start
у меня brew install ghc включает, например
       binary
       Cabal
       exceptions
       haskeline
       libiserv
       parsec
       terminfo
       transformers

но не включает core:
       primitive
       random
       vector
источник

JS

Jerzy Syrowiecki in Haskell Start
🤷
источник

A

Aragaer in Haskell Start
переписал свой код через такие же валидаторы вместо парсека. Нормально, но все-таки нужны Data.Char и Text.Read
источник

AP

Aleksei (astynax) Pi... in Haskell Start
И то, и другое — часть base.
источник

AP

Aleksei (astynax) Pi... in Haskell Start
Не всё, что есть в base, экспортируется в Prelude
источник

A

Aragaer in Haskell Start
ну так а rights и catMaybes и какое-нибудь isJust вроде тоже
источник

AP

Aleksei (astynax) Pi... in Haskell Start
да, это всё из base
источник

A

Aragaer in Haskell Start
а, во, вопрос, для length $ filter есть какое-то готовое?
источник

AP

Aleksei (astynax) Pi... in Haskell Start
нет, ибо незачем
источник

AP

Aleksei (astynax) Pi... in Haskell Start
count = (length .) . filter
источник

JS

Jerzy Syrowiecki in Haskell Start
вместо isJust и filter часто удобнее компрехеншон
источник

A

Aragaer in Haskell Start
немножко варварства
   toField (x:y:z:':':xs) = ([x,y,z], xs)
источник

JS

Jerzy Syrowiecki in Haskell Start
Aragaer
немножко варварства
   toField (x:y:z:':':xs) = ([x,y,z], xs)
не, отлично
источник

СА

Станислав Алексеев... in Haskell Start
А насколько strict быстрее/медленнее lasy?
источник

к

кана in Haskell Start
нинасколько, это же от ситуации зависит
источник

СА

Станислав Алексеев... in Haskell Start
и как в packege.yaml файл воткнуть ghc-options
источник

к

кана in Haskell Start
например
take 10 $ repeat 0
будет в строгом случае в бесконечно дольше ленивого вариант (учитывая что у нас бесконечное число времени)

а в других случаях ленивость может порождать thunks, которые будут занимать память и тормозить
источник