Size: a a a

2021 December 06

JS

Jerzy Syrowiecki in Haskell Start
я рекомендовал не через теорию типов, а через понятие о типах
источник

JS

Jerzy Syrowiecki in Haskell Start
например, лично мне каррирование легче было понять в терминах изоморфизма типов (a, b) -> c ~ a -> b -> c, чем в нетипизированной лямбде
источник

[

[BRM]White Rabbit in Haskell Start
Я про каррирование, помню, узнал в какой-то статье про обзор фп на хабре, где код был на какой-то псевдо-джаве и продавал то, чего нет - ну там бесплатную параллельность и вот это вот всё.
Там сразу было генерализированное определение, понять следом идею функции труда не составило.
источник
2021 December 07

K

Kiril in Haskell Start
Доброго времени суток. Столкнулся с необходимостью установить пакет random. И не пойму почему не получается.
Пробовал:
1 cabal install random - получил unknown package “random”
2 установил stack но не смог разобраться как его настроить. У меня уже есть компилятор, а stack постоянно намеривается установить новый. Я выставил resolver по версии своего компилятора и сделал system-ghc —global true. Это помогло от части. Теперь stack пытается скачать msys2, который у меня тоже уже есть.

Как мне сделать нормальную среду с одним глобальным компилятором и легкой установкой новых пакетов?

P.S. Меня не интересуют “best practices” где для каждого проекта скачивается своя версия компилятора.
источник

[

[BRM]White Rabbit in Haskell Start
<~>-> cabal install random
Resolving dependencies...
Up to date
Warning:
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: Installation might not be completed as desired! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
The command "cabal install [TARGETS]" doesn't expose libraries.
* You might have wanted to add them as dependencies to your package. In this
case add "random" to the build-depends field(s) of your package's .cabal file.
* You might have wanted to add them to a GHC environment. In this case use
"cabal install --lib random". The "--lib" flag is provisional: see
https://github.com/haskell/cabal/issues/6481 for more information.
<~>->
источник

[

[BRM]White Rabbit in Haskell Start
> You might have wanted to add them to a GHC environment. In this case use "cabal install --lib random".
источник

[

[BRM]White Rabbit in Haskell Start
ещё кстати вариант что ты cabal update не сделал
источник

JS

Jerzy Syrowiecki in Haskell Start
не надо библиотеки устанавливать вообще. надо в зависимости проекта вписать, и сборщик принесёт нужную версию
источник

JS

Jerzy Syrowiecki in Haskell Start
разным проектам может быть нужна разная версия, поэтому установка не имеет смысла
источник

K

Kiril in Haskell Start
Спасибо большое.
cabal update
cabal install —lib random
Работает как надо!
источник

JS

Jerzy Syrowiecki in Haskell Start
так не надо. лучше вот так:

cabal repl -b random
источник

K

Kiril in Haskell Start
На сколько я помню это добавить пакет в какое то временное хранилище.

Я пришёл из С#, я понимаю подход с построением проектов с большим количеством зависимостей. Но я компилирую однофайловые программки пока читаю книгу и мне удобней работать когда все доступно глобально.
источник

[

[BRM]White Rabbit in Haskell Start
<~>-> ls .cabal/store/ghc-8.10.5/
aeson-1.5.6.0-62788a72ad25e8ed81a4e2d82473e59a74812864b8d913528115b8c7082a5b1b
alex-3.2.6-e-alex-8c1694abbcc6a1c3509ca0d68279eb4271af976289a8ebe4003cc42ae45d94b5
ansi-terminal-0.11-9acb5b3510a604e9223b14190bb3e5b160cf83acd63d8299915225803bab8b07
ansi-wl-pprint-0.6.9-faf421f65d96783a284ba2e7618b2917e847eb441a2c56ad93709cbe99f75d5b
assoc-1.0.2-dbf10d823c791cde5c796c5a5f45079208d3288a32481fc7b672e549dbe46516
...


Они вот сюда сохраняются если что
источник

[

[BRM]White Rabbit in Haskell Start
вроде бы эти даже проектные
источник

[

[BRM]White Rabbit in Haskell Start
потому что я aeson отдельно не скачивал
источник

IB

Ilya Baryshnikov in Haskell Start
Тут принято, для каждого проекта отдельно хранить зависимости, поэтому install делает установку в некоторый глобальный проект
источник

JS

Jerzy Syrowiecki in Haskell Start
а, да, для такого использования норм.

со временем полезут конфликты версий, надо будет удалить ~/.cabal и начать заново
источник

FL

Felix Lewandowski in Haskell Start
Ну здрасьте, а нугет разве не делает папку packages в папке проекта?)
источник

JS

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

[

[BRM]White Rabbit in Haskell Start
Там прямо написано "у меня есть опыт и я понимаю, что в крупных проектах нужно локальные зависимости, но я хочу пописать однофайловики для обучения, без создания проекта на каждый чих"
источник