SQAG5QHQNITVNTIDS74F2EYBFIQV24HFZ4D3A2UY2Y4SG7KT4HNQC
POLQ32ZXG7UEUED6XNCAMOED3F7SN5VS3WZQQHTDSAHWTAOMLXEQC
AT33CPGCJ6EAXFTPSVQ3QRFLRZFP5S6EZWQ3P3I4MKZL5XJ3OLIAC
JU2NTHDKPEN3QLFTIEFF6BCRSSIWQP7LPWWONRBOTSPLVD3BD63AC
FGRZYV3XLUW7UNJCWE7LTW4PRHIJVG5RUMQUZH5GZ3ZKMV3UQTYQC
CXW37WKZDOFBTPGZQGQVWDWGA7YWGGJ47SSD4KYEXD6MPERELGGAC
RHWQQAAHNHFO3FLCGVB3SIDKNOUFJGZTDNN57IQVBMXXCWX74MKAC
NO65L7MGPDST6U4ZMLERQMFRMP2ZLHM3UJCT2KAXCDTHFBTE43XQC
XIPIZZFWHUNPWKNRBB3WAFT64IUEITOCVY2YCHFMB7ZP2NGUGA7QC
CODKUGR4OH2GM2GYYVDC3HYIF3PMOFOJAMXQBH6TUJUFEBN4STYQC
UPVCS5WSF5W5CYRF5YSG23C5CSFW4HFKZSJXXKBWGCMGO7V5GWAAC
7DYPLKHTPQTAIT7Z7SLQRSMFE2LKUGYDHVDHPAK3HBZLSIYRMUSQC
KNZKRW5WZVVQL73LUG3GGFR5QHJJWI4LMOLHJUXUU4PHNBCBLJLAC
SDHADQGZ5ZPH7EBCKSODCEC4FBBNR7DPVQAA4EMNN7EPN5NR6GVAC
* Libraries
:PROPERTIES:
:ARCHIVE_TIME: 2022-10-16 Sun 09:32
:ARCHIVE_FILE: ~/org/projects.org
:ARCHIVE_OLPATH: Learning Haskell
:ARCHIVE_CATEGORY: projects
:ARCHIVE_ITAGS: haskell
:END:
- [X] Shelly - [X] Xmonad
= - Récup de l'écran=\\
= - Faire un projet cabal=
* Concepts
:PROPERTIES:
:CUSTOM_ID: concepts
:ARCHIVE_TIME: 2022-10-16 Sun 09:32
:ARCHIVE_FILE: ~/org/projects.org
:ARCHIVE_OLPATH: Learning Haskell
:ARCHIVE_CATEGORY: projects
:ARCHIVE_ITAGS: haskell
:END:
- [X] Functional dependencies
= - [X] =[[https://www.youtube.com/watch?v=JleVecHAad4][=An`` ``introduction`` ``to`` ``Haskell's`` ``kinds=]]= =\\
= - [X] =[[https://www.youtube.com/watch?v=Qy_yxVkO8no][=Getting`` ``a`` ``little`` ``fancy`` ``with`` ``Haskell's`` ``kinds=]]
- [ ] Backpack
= - [ ] =[[http://blog.ezyang.com/2016/10/try-backpack-ghc-backpack/][=Part`` ``1=]]\\
= - [ ] =[[https://sebfisch.github.io/haskell-regexp/regexp-play.pdf][=https://sebfisch.github.io/haskell-regexp/regexp-play.pdf=]]\\
= - [ ] =[[http://blog.ezyang.com/2017/01/try-backpack-cabal-packages/][=Part`` ``2=]]
- [X]
[[https://www.quora.com/What-are-some-practical-uses-of-bifunctors-in-Haskell/answer/James-Bowen-13][Bifunctors]]
* Concepts
:PROPERTIES:
:CUSTOM_ID: concepts
:ARCHIVE_TIME: 2022-10-16 Sun 09:32
:ARCHIVE_FILE: ~/org/projects.org
:ARCHIVE_OLPATH: Learning Haskell
:ARCHIVE_CATEGORY: projects
:ARCHIVE_ITAGS: haskell
:END:
- [X] Functional dependencies
= - [X] =[[https://www.youtube.com/watch?v=JleVecHAad4][=An`` ``introduction`` ``to`` ``Haskell's`` ``kinds=]]= =\\
= - [X] =[[https://www.youtube.com/watch?v=Qy_yxVkO8no][=Getting`` ``a`` ``little`` ``fancy`` ``with`` ``Haskell's`` ``kinds=]]
- [ ] Backpack
= - [ ] =[[http://blog.ezyang.com/2016/10/try-backpack-ghc-backpack/][=Part`` ``1=]]\\
= - [ ] =[[https://sebfisch.github.io/haskell-regexp/regexp-play.pdf][=https://sebfisch.github.io/haskell-regexp/regexp-play.pdf=]]\\
= - [ ] =[[http://blog.ezyang.com/2017/01/try-backpack-cabal-packages/][=Part`` ``2=]]
- [X]
[[https://www.quora.com/What-are-some-practical-uses-of-bifunctors-in-Haskell/answer/James-Bowen-13][Bifunctors]]
* Learning Haskell :haskell:
** [#A] Reddit suggestion
*** TODO Foundational building blocks
- [X] [[https://mmhaskell.com/monads/functors][Functor]]
- [X] [[https://mmhaskell.com/monads/applicatives][Applicatives]]
- [ ] [[https://mmhaskell.com/monads/tutorial][Monads]]
- [X] [[https://mmhaskell.com/monads/reader-writer][Reader, writer]]
- [X] [[https://mmhaskell.com/monads/state][State]]
- [X] [[https://mmhaskell.com/monads/transformers][Transformers]]
- [ ] [[https://mmhaskell.com/monads/laws][Laws]]
*** TODO Real-world example
- [X] Database
- [ ] API
- [ ] Relax for a few days and watch how interactive programs are being
composed
- [ ] Get back to the real-world example and make it a complete
Cabal project.
- [ ] [[https://mmhaskell.com/testing/test-driven-development][Testing]]
*** [#A] Best resource : [[https://downloads.haskell.org/~ghc/8.10.4/docs/html/users_guide/glasgow_exts.html#language-options][Language Reference]]
whenever you see an unknown language extension or a compilation flag, look it up in Language Reference and try to understand it. You don't have to fully understand them though, just read about them and keep them on your mind. One day they will begin to automatically click into a sound set of concepts.
Language Reference is one of the most underappreciated sources of information (it's almost universally overlooked in language communities - it was the case for Python, and I find it to be true for Haskell as well). You mentioned that you don't like REPL examples, and neither do I. Luckily, the User Guide/Reference has introductory sections for people like us. Once I knew how to compile a single file and to run it, the rest was just a matter of getting to know things by their name in a new ecosystem.
*** DONE Learn to compose things
CLOSED: [2022-10-16 Sun 09:41]
When you already know how to compile and run single-module interactive console programs, it takes about a day to understand basics of Cabal, and about a week to learn about input parsing and output formatting. Do you need CLI args? Use optparse-applicative. Env vars? Use envy. JSON? Use aeson and a cheatsheet. Don't think about performance and/or API conventions, that's not what you should be concerned of at this point, as you are just learning to compose things together from individual parts.
*** Get back to the real-world example and make it a complete Cabal project.
*** Experiment with various libraires
At this point you have enough knowledge to begin experimenting with various libraries and APIs. Learn how to use Hoogle, and read as much as you can/want on Haskell Planetarium.
** KILL Learn Haskell for your greater good
:PROPERTIES:
:CUSTOM_ID: kill-learn-haskell-for-your-greater-good
:END:
50%
** HOLD [[books.org::Haskell%20Programming%20From%20First%20Principles][Haskell programming from first principles]]
**** GHC
***** TODO Lire commentary
***** TODO STRT Lire [[https://www.aosabook.org/en/ghc.html]]
* Gentoo
** GURU
*** WAIT Demander accès
<2022-10-15
*** TODO Ebuild pour adapteur wifi TBW-108B
* Learning Haskell
** Libraries
- [X] Shelly - [X] Xmonad
= - Récup de l'écran=\\
= - Faire un projet cabal=
** Concepts
:PROPERTIES:
:CUSTOM_ID: concepts
:END:
- [X] Functional dependencies
= - [X] =[[https://www.youtube.com/watch?v=JleVecHAad4][=An`` ``introduction`` ``to`` ``Haskell's`` ``kinds=]]= =\\
= - [X] =[[https://www.youtube.com/watch?v=Qy_yxVkO8no][=Getting`` ``a`` ``little`` ``fancy`` ``with`` ``Haskell's`` ``kinds=]]
- [ ] Backpack
= - [ ] =[[http://blog.ezyang.com/2016/10/try-backpack-ghc-backpack/][=Part`` ``1=]]\\
= - [ ] =[[https://sebfisch.github.io/haskell-regexp/regexp-play.pdf][=https://sebfisch.github.io/haskell-regexp/regexp-play.pdf=]]\\
= - [ ] =[[http://blog.ezyang.com/2017/01/try-backpack-cabal-packages/][=Part`` ``2=]]
- [X]
[[https://www.quora.com/What-are-some-practical-uses-of-bifunctors-in-Haskell/answer/James-Bowen-13][Bifunctors]]
** [[https://www.reddit.com/r/haskell/comments/npxfba/ive_tried_to_learn_haskell_several_times_but_keep/h084wwa?utm_source=share&utm_medium=web2x&context=3][Monday
Morning Haskell - Reddit]]
:PROPERTIES:
:CUSTOM_ID: monday-morning-haskell---reddit
:END:
- [ ] Foundational building blocks
= - [X] Functor =[[https://mmhaskell.com/monads/functors][=https://mmhaskell.com/monads/functors=]]\\
= - [X] =[[https://mmhaskell.com/monads/applicatives][=https://mmhaskell.com/monads/applicatives=]]\\
= - [X] =[[https://mmhaskell.com/monads/tutorial][=https://mmhaskell.com/monads/tutorial=]]\\
= - [X] =[[https://mmhaskell.com/monads/reader-writer][=https://mmhaskell.com/monads/reader-writer=]]\\
= - [X] =[[https://mmhaskell.com/monads/state][=https://mmhaskell.com/monads/state=]]\\
= - [X] =[[https://mmhaskell.com/monads/transformers][=https://mmhaskell.com/monads/transformers=]]\\
= - [ ] =[[https://mmhaskell.com/monads/laws][=https://mmhaskell.com/monads/laws=]]\\
= =
- [ ] real-world example
= - [X] Database=\\
= - [ ] API=
- [ ] Relax for a few days and watch how interactive programs are being
composed - [ ] Get back to the real-world example and make it a complete
Cabal project. - [ ]
[[https://mmhaskell.com/testing/test-driven-development][Testing]]
* Divers
* Ressources
** KILL Learn Haskell for your greater good
:PROPERTIES:
:CUSTOM_ID: kill-learn-haskell-for-your-greater-good
:END:
50%
** STRT [[books.org::Haskell%20Programming%20From%20First%20Principles][Haskell programming from first principles]]
** GHC
*** TODO Lire commentary
*** TODO STRT Lire [[https://www.aosabook.org/en/ghc.html]]