Skip to content

Commit 7b791f6

Browse files
committed
Fix broken links
1 parent ca212d7 commit 7b791f6

19 files changed

Lines changed: 113 additions & 217 deletions

README.md

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
[![License: CC BY-SA 4.0](https://img.shields.io/badge/License-CC%20BY--SA%204.0-lightgrey.svg)](https://creativecommons.org/licenses/by-sa/4.0/)
44
[![DOI](https://zenodo.org/badge/118425348.svg)](https://zenodo.org/badge/latestdoi/118425348)
55

6-
Materials of [MI-AFP] (*Applied Functional Programming*) course tutorials
6+
Materials of MI-AFP (*Applied Functional Programming*) course tutorials
77

88
## Content
99

@@ -29,7 +29,6 @@ This project is licensed under the Creative Commons Public License [CC BY-SA 4.0
2929
[issue]: https://help.github.com/articles/about-issues/
3030
[pull request]: https://help.github.com/articles/about-pull-requests/
3131
[CC BY-SA 4.0]: https://creativecommons.org/licenses/by-sa/4.0/deed.cs
32-
[MI-AFP]: http://bk.fit.cvut.cz/en/predmety/00/00/00/00/00/00/05/42/92/p5429206.html
3332
[MI-AFP organization]: https://github.com/MI-AFP
3433
[MI-PYT]: https://github.com/cvut/MI-PYT
3534
[LICENSE]: LICENSE

project-guide.md

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -63,8 +63,6 @@ Important part of a productive environment (and not just for team, even if you a
6363

6464
The most famous version control systems these days are [Git](https://git-scm.com) and [SVN (subversion)](https://subversion.apache.org). Frequently, you can stick with rule that SVN is more suitable for larger and binary files (although there is Git LFS) or when good integration for specific tool is supplied (for example, Enterprise Architect). The core difference is in approach that SVN is centralized and you need to lock part that you want to change, this is where Git will require you resolve merge conflicts. Merging and branches in SVN are more complicated than in Git (this many be subjective).
6565

66-
![Git vs. Subversion (git-tower.com)](https://www.git-tower.com/learn/content/01-git/01-ebook/en/02-desktop-gui/07-appendix/02-from-subversion-to-git/centralized-vs-distributed.png)
67-
6866
For more see: https://www.perforce.com/blog/vcs/git-vs-svn-what-difference
6967

7068
### GitHub, GitLab, and others
@@ -142,7 +140,7 @@ To avoid that, you need some people to do reviews for you and do the review for
142140

143141
As already being said few times, there are services that can be easily integrated with GitHub or GitLab in order to do something with your project automatically when you push commits, create pull request, release new version, or do some other action. The "something" can be actually anything and you can write such "[CI tool](https://en.wikipedia.org/wiki/Continuous_integration)" even by yourself.
144142

145-
* Continuous Integration - This term is used usually when your software is built (all parts are integrated), and tested with automatic tests or at least attempt to execute it is done. The result is that at that moment your code is (at least somehow) working. It is nice to see in your commits history which were working and which were not. For this, you can use [Travis CI](travis-ci.org), [Semaphore CI](https://semaphoreci.com), AppVeyor, and many others.
143+
* Continuous Integration - This term is used usually when your software is built (all parts are integrated), and tested with automatic tests or at least attempt to execute it is done. The result is that at that moment your code is (at least somehow) working. It is nice to see in your commits history which were working and which were not. For this, you can use [Travis CI](https://travis-ci.org), [Semaphore CI](https://semaphoreci.com), AppVeyor, and many others.
146144
* Continuous Inspection - Services that does static inspection of your code, they can verify dependencies of your project, evaluate coverage, and others. One of the examples is [SonarQube](https://www.sonarqube.org), but again there are many similar services.
147145
* Continuous Delivery - If your code passed the build and test phases, it can be deployed somewhere. The deployment can have many realizations, from actual deployment on some web hosting or app server (realized, for example, by service like [Heroku](https://www.heroku.com) or [AWS](https://aws.amazon.com)), though publishing new documentation on [ReadTheDocs](https://readthedocs.org), to uploading installation packages to some registry. All depends what you need, want, and how you will set it up.
148146

references.md

Lines changed: 44 additions & 129 deletions
Original file line numberDiff line numberDiff line change
@@ -2,133 +2,90 @@
22

33
## Rationale
44

5-
* https://dzone.com/articles/why-haskell-matters
6-
* http://programmers.stackexchange.com/questions/279316/what-exactly-makes-the-haskell-type-system-so-revered-vs-say-java/
7-
* https://www.reddit.com/r/haskell/comments/3f4s3r/advantages_and_disadvantages_of_haskell_in/
8-
* https://code.facebook.com/posts/745068642270222/fighting-spam-with-haskell/
9-
* https://www.reddit.com/r/haskell/comments/3h7fqr/what_are_haskellers_critiques_of_scala/
10-
* https://www.reddit.com/r/haskell/comments/3h5og6/i_now_tend_to_think_that_the_concepts_behind_all/
11-
* http://jfeltz.com/posts/2015-08-30-cost-decreasing-software-architecture.html
12-
* https://medium.com/@bryanmikaelian/haskell-changed-me-f98ebbb84333
13-
* http://www.leonmergen.com/code/2015/12/04/on-stateless-software-design-what-is-state.html
14-
* https://www.futurelearn.com/courses/functional-programming-haskell/1/steps/115453
15-
* http://baatz.io/posts/haskell-in-a-startup/
5+
* https://wiki.haskell.org/Why_Haskell_matters
6+
* https://programmers.stackexchange.com/questions/279316/what-exactly-makes-the-haskell-type-system-so-revered-vs-say-java/
7+
* https://code.facebook.com/posts/745068642270222/fighting-spam-with-haskell/i_now_tend_to_think_that_the_concepts_behind_all/
8+
* https://baatz.io/posts/haskell-in-a-startup/
169
* https://lexi-lambda.github.io/blog/2016/06/12/four-months-with-haskell/?utm_source=all
17-
* http://www.stephendiehl.com/posts/production.html
18-
* https://www.reddit.com/r/haskell/comments/46jaqx/i_really_want_to_use_haskell_but_im_having/
1910
* https://www.wagonhq.com/blog/haskell-for-industry
20-
* http://www.lihaoyi.com/post/WhatsFunctionalProgrammingAllAbout.html
11+
* https://www.lihaoyi.com/post/WhatsFunctionalProgrammingAllAbout.html
2112
* https://kseo.github.io/posts/2017-01-27-how-i-learned-haskell.html
2213
* https://hackernoon.com/easing-haskells-intimidating-glare-2341095e88aa
2314
* https://www.fpcomplete.com/blog/2016/11/mastering-time-to-market-haskell
2415

2516
## Courses and Fundamental topics
2617

27-
* http://learnyouahaskell.com
28-
* http://haskellbook.com/
29-
* https://www.edx.org/course/introduction-functional-programming-delftx-fp101x-0
30-
* http://book.realworldhaskell.org
31-
* http://dev.stephendiehl.com/hask/
18+
* https://learnyouahaskell.github.io/
19+
* https://haskellbook.com/
20+
* https://i.iinfo.cz/files/root/k/real-world-haskell.pdf
3221
* https://wiki.haskell.org
3322
* https://www.fpcomplete.com/
34-
* http://nptel.ac.in/courses/106106137/
35-
* https://www.reddit.com/r/haskell/comments/3j36wc/haskell_tutorial_collection/
36-
* http://www.happylearnhaskelltutorial.com/
37-
* http://learn.hfm.io/higher_order.html
23+
* https://nptel.ac.in/courses/106106137/
24+
* https://www.happylearnhaskelltutorial.com/
3825
* https://github.com/takenobu-hs/type-introduction-illustrated
39-
* http://stackoverflow.com/questions/15530511/how-to-edit-nth-element-in-a-haskell-list
26+
* https://stackoverflow.com/questions/15530511/how-to-edit-nth-element-in-a-haskell-list
4027
* https://www.youtube.com/playlist?list=PLsAEIIjTPIo83ufYYkaPjUwZUuTe1LoZP
41-
* http://www.scs.stanford.edu/11au-cs240h/notes/
42-
* https://www.futurelearn.com/courses/functional-programming-haskell
43-
* https://m.reddit.com/r/haskell/comments/4ooxqc/does_anyone_have_a_progressive_list_of_beginner/
44-
* http://cheatsheet.codeslower.com/
45-
* https://github.com/warreee/haskell
46-
* http://lotz84.github.io/haskellbyexample/
47-
* http://ndmitchell.com/downloads/slides-drive-by_haskell_contributions-09_jun_2017.pdf
48-
* http://bitemyapp.com
28+
* https://www.scs.stanford.edu/11au-cs240h/notes/
29+
* https://cheatsheet.codeslower.com/
30+
* https://lotz84.github.io/haskellbyexample/
31+
* https://ndmitchell.com/downloads/slides-drive-by_haskell_contributions-09_jun_2017.pdf
32+
* https://bitemyapp.com
4933
* https://kseo.github.io/posts/2017-01-28-build-your-haskell-project-continuously.html
50-
* http://www.atamo.com/articles/how-to-read-pearls-by-richard-bird/
34+
* https://www.atamo.com/articles/how-to-read-pearls-by-richard-bird/
5135
* https://mmhaskell.com/blog/2017/1/30/the-easiest-haskell-idiom
5236

5337
## Problems Solving
5438

55-
* https://www.reddit.com/r/haskell/comments/469n8s/best_practices_for_modifiable_state_in_haskell/
5639
* https://www.youtube.com/watch?v=p-NBJm0kIYU
57-
* http://research.microsoft.com/en-us/um/people/simonpj/papers/financial-contracts/contracts-icfp.htm
58-
* https://www.reddit.com/r/haskell/comments/3ez1k4/how_would_you_design_this_program_in_haskell/
59-
* http://blog.ezyang.com/2010/05/design-patterns-in-haskel/
60-
* https://www.reddit.com/r/haskell/comments/3r8x5m/best_way_to_model_a_deck_of_cards/
61-
* http://ideas.cs.uu.nl/FPTutor/
62-
* http://www.parsonsmatt.org/2015/12/09/exploratory_haskell.html
63-
* http://abailly.github.io/posts/event-source.html
40+
* https://research.microsoft.com/en-us/um/people/simonpj/papers/financial-contracts/contracts-icfp.htm
41+
* https://blog.ezyang.com/2010/05/design-patterns-in-haskel/
42+
* https://www.parsonsmatt.org/2015/12/09/exploratory_haskell.html
43+
* https://abailly.github.io/posts/event-source.html
6444
* https://mmhaskell.com/blog/2017/7/24/getting-the-users-opinion-options-in-haskell
6545

6646
## Specific Topics
6747

6848
* https://hackhands.com/lazy-evaluation-works-haskell/
69-
* http://jelv.is/blog/Haskell-Monads-and-Purity/
70-
* http://brandon.si/code/the-state-monad-a-tutorial-for-the-confused/
71-
* http://www.haskellforall.com/2015/10/polymorphism-for-dummies.html
72-
* http://www.gilmi.xyz/post/2015/08/12/how-haskell-models-io
73-
* https://www.reddit.com/r/haskell/comments/3hqvzi/how_to_accomplish_edits_of_a_large_dataset_in
74-
* https://www.reddit.com/r/haskell/comments/3is2ay/what_gui_libray_do_you_userecommend/
75-
* https://www.reddit.com/r/haskell/comments/3wxggs/whats_the_best_way_to_create_gui_for_haskell/
76-
* http://www.alexeyshmalko.com/2015/haskell-string-types/
77-
* https://www.reddit.com/r/haskell/comments/3u5ryh/fast_way_to_serialize_haskell_objects/
78-
* http://kwangyulseo.com/2014/02/06/multi-line-strings-in-haskell/
79-
* https://github.com/asivitz/Hickory
80-
* https://m.reddit.com/r/haskell/comments/4vh4sg/recommended_way_of_dealing_with_db_associations/
81-
* https://m.reddit.com/r/haskell/comments/4shcin/whats_the_best_way_to_create_prebuilt_binaries_of/
49+
* https://jelv.is/blog/Haskell-Monads-and-Purity/
50+
* https://brandon.si/code/the-state-monad-a-tutorial-for-the-confused/
51+
* https://www.haskellforall.com/2015/10/polymorphism-for-dummies.html
52+
* https://www.alexeyshmalko.com/2015/haskell-string-types/
8253
* https://two-wrongs.com/parser-combinators-parsing-for-haskell-beginners
8354
* https://jeltsch.wordpress.com/2016/02/22/generic-programming-in-haskell/
84-
* http://blog.ssanj.net/posts/2014-09-23-A-Simple-Reader-Monad-Example.html
55+
* https://blog.ssanj.net/posts/2014-09-23-A-Simple-Reader-Monad-Example.html
8556
* https://www.athiemann.net/2017/07/02/superrecord.html
8657
* https://www.schoolofhaskell.com/user/fumieval/encoding-objects
87-
* http://www.stephendiehl.com/posts/strings.html
8858
* https://mmhaskell.com/blog/2017/5/15/untangling-haskells-strings
89-
* https://medium.com/@jonathangfischoff/the-partial-options-monoid-pattern-31914a71fc67
90-
* http://vaibhavsagar.com/blog/2017/05/29/imperative-haskell/
59+
* https://vaibhavsagar.com/blog/2017/05/29/imperative-haskell/
9160
* https://hackernoon.com/type-class-patterns-and-anti-patterns-efd045c5af66
9261
* https://philipnilsson.github.io/Badness10k/posts/2017-05-07-escaping-hell-with-monads.html
93-
* https://medium.com/@sjsyrek/five-minutes-to-monoid-fe6f364d0bba
94-
* http://foswiki.cs.uu.nl/foswiki/pub/Swierstra/ResearchTalks/tree-oriented-programming-slides.pdf
9562
* https://hackernoon.com/typeclass-instance-selection-fea1068920e6
9663
* https://two-wrongs.com/dynamic-dispatch-in-haskell-how-to-make-code-extendable
9764
* https://e.xtendo.org/monad#1
98-
* http://www.cs.nott.ac.uk/~pszgmh/fold.pdf
99-
* http://www.parsonsmatt.org/2017/02/17/ooph_data_inheritance.html
65+
* https://www.parsonsmatt.org/2017/02/17/ooph_data_inheritance.html
10066

10167
### Lenses
10268

103-
* http://www.haskellforall.com/2013/05/program-imperatively-using-haskell.html
104-
* https://m.reddit.com/r/haskell/comments/4s84tc/examples_of_why_lens_is_useful/
105-
* http://www.mchaver.com/posts/2017-07-12-lens-tutorial-1.html
69+
* https://www.haskellforall.com/2013/05/program-imperatively-using-haskell.html
10670

10771
### Databases
10872

109-
* http://stackoverflow.com/questions/104960/are-there-any-orm-tools-for-haskell
73+
* https://stackoverflow.com/questions/104960/are-there-any-orm-tools-for-haskell
11074
* https://github.com/begriffs/postgrest/blob/master/README.md
11175

11276
### GUI
11377

11478
* https://begriffs.com/posts/2016-07-27-tikhon-on-frp.html
11579
* https://github.com/gelisam/frp-zoo
116-
* https://www.stackbuilders.com/tutorials/haskell/gui-application/
11780

11881
## Tooling
11982

12083
* https://www.haskell.org/hoogle/
12184
* https://github.com/alanz/HaRe
122-
* https://www.fpcomplete.com/
123-
* https://www.reddit.com/r/haskell/comments/3ni7fb/is_there_any_ide_or_plugin_for_haskell_that_does/
124-
* https://www.reddit.com/r/haskell/comments/3oa0ht/is_there_a_simple_way_to_automatically_visualize/
125-
* https://www.reddit.com/r/haskell/comments/3voe9p/debugging_haskell_programs/
12685
* https://functor.tokyo/blog/2017-07-28-ghc-warnings-you-should-enable
12786

12887
### VIM
12988

130-
* http://www.stephendiehl.com/posts/vim_haskell.html
131-
* http://blog.mno2.org/posts/2011-11-17-vim-plugins-for-haskell-programmers.html
13289
* https://github.com/eagletmt/neco-ghc
13390
* https://github.com/begriffs/haskell-vim-now
13491

@@ -141,82 +98,40 @@
14198

14299
## Libraries
143100
* https://github.com/krispo/awesome-haskell
144-
* http://haskelliseasy.readthedocs.io/en/latest/
145-
* http://www.haskellforall.com/2015/08/state-of-haskell-ecosystem-august-2015.html?m=1
146-
* http://projects.haskell.org/diagrams/doc/quickstart.html
101+
* https://haskelliseasy.readthedocs.io/en/latest/
102+
* https://www.haskellforall.com/2015/08/state-of-haskell-ecosystem-august-2015.html?m=1
103+
* https://projects.haskell.org/diagrams/doc/quickstart.html
147104

148105
## Architecture
149106

150-
* http://stackoverflow.com/questions/3077866/large-scale-design-in-haskell
151-
* http://stackingyourmonads.benkolera.com/#/
152-
* https://dshevchenko.biz/hs-research/Haskell-in-the-Large.pdf
153-
154-
## Web Development
155-
156-
* https://www.stackbuilders.com/tutorials/functional-full-stack/purescript-bridge/
107+
* https://stackoverflow.com/questions/3077866/large-scale-design-in-haskell
157108

158109
### Server Side
159110

160-
* https://www.slant.co/topics/727/~haskell-web-frameworks-for-building-restful-web-services
161-
* http://stackoverflow.com/questions/5645168/comparing-haskells-snap-and-yesod-web-frameworks
162-
* http://zyghost.com/articles/Renderable.html
111+
* https://stackoverflow.com/questions/5645168/comparing-haskells-snap-and-yesod-web-frameworks
112+
* https://zyghost.com/articles/Renderable.html
163113
* https://robots.thoughtbot.com/a-rest-api-with-haskell-and-snap
164114

165115
### Client Side
166116

167-
* http://haste-lang.org/
117+
* https://haste-lang.org/
168118
* https://github.com/ghcjs/ghcjs
169-
* https://www.airpair.com/haskell/posts/haskell-tutorial-introduction-to-web-apps
170-
* http://ifeanyi.co/posts/client-side-haskell/
119+
* https://ifeanyi.co/posts/client-side-haskell/
171120
* https://speakerdeck.com/mkscrg/electron-react-and-haskell-oh-my
172-
* http://stackoverflow.com/questions/9210412/recommended-reading-tutorials-to-understand-reactive-banana-frp-library
173-
174-
## Examples and Projects
175-
176-
* https://m.reddit.com/r/haskell/comments/571tu3/what_are_some_good_open_source_projects_for/
177-
* http://utdemir.com/posts/modeling-the-hardest-logic-puzzle-ever-in-haskell.html
178-
* http://zyghost.com/articles/Renderable.html
179-
* https://www.reddit.com/r/haskell/comments/3l2b7q/good_midsized_projects_for_learning_haskell/
180-
* https://gist.github.com/ToJans
181-
* https://www.reddit.com/r/haskell/comments/3pqdln/large_applications_written_using_frp/
182-
* https://github.com/divipp/lensref/wiki
183-
* https://www.youtube.com/watch?v=sl2zo7tzrO8
184-
* https://lotz84.github.io/haskellbyexample/
185-
* https://m.reddit.com/r/haskell/comments/557fx1/how_to_model_road_intersections/
186-
* http://bitemyapp.com/posts/2015-04-26-installing-a-haskell-game.html
187-
* https://github.com/pmikkelsen/game-of-life
188-
* https://github.com/rjohnsondev/haskellshop
189-
* https://github.com/google/codeworld
190-
* https://github.com/jtdaugherty/brick
191-
* https://github.com/lunky/IntroToFunctionalProgramming
192-
* http://www.kovach.me/posts/2014-08-09-twitter.html
193-
121+
* https://stackoverflow.com/questions/9210412/recommended-reading-tutorials-to-understand-reactive-banana-frp-library
194122

195123
## Style
196124

197-
* http://stackoverflow.com/questions/7746894/are-there-pronounceable-names-for-common-haskell-operators
198-
* https://www.reddit.com/r/haskell/comments/3ple0s/google_styleguide_for_haskell/
199-
* https://m.reddit.com/r/haskell/comments/578amb/haskell_code_standards/
125+
* https://stackoverflow.com/questions/7746894/are-there-pronounceable-names-for-common-haskell-operators
200126

201127
## Advanced
202128

203-
* https://ocharles.org.uk/blog/pages/2014-12-01-24-days-of-ghc-extensions.html
204-
* http://bartoszmilewski.com/2014/10/28/category-theory-for-programmers-the-preface/
205-
* https://www.reddit.com/r/haskell/comments/3m9nyp/category_theory_the_essence_of_interfacebased/
206-
* https://www.reddit.com/r/haskell/comments/3k17md/is_there_anything_more_powerful_than_monads/
207-
* https://www.reddit.com/r/haskell/comments/3lnhkp/monad_and_comonad_insights/
208-
* http://fvisser.nl/post/2013/okt/1/fclabels-2.0.html
209-
* http://www.parsonsmatt.org/2015/11/15/template_haskell.html
210-
* https://www.reddit.com/r/haskell/comments/3vfrik/can_i_put_constraints_on_type_constructors/
211-
* https://www.reddit.com/r/haskell/comments/3wxh7a/transducers_why_and_how/
212-
* https://www.reddit.com/r/haskell/comments/3wkofz/traversal_of_lens_with_maybe_fields/
129+
* https://www.parsonsmatt.org/2015/11/15/template_haskell.html
213130
* https://wiki.haskell.org/GADTs_for_dummies
214-
* https://m.reddit.com/r/haskell/comments/4sihcv/haskell_the_bad_parts/
215131
* https://blog.jle.im/entry/io-monad-considered-harmful.html
216-
* https://m.reddit.com/r/haskell/comments/4prbba/what_can_i_do_with_comaybe/
217-
* http://www.haskellforall.com/2016/02/auto-generate-command-line-interface.html
218-
* http://www.haskellforall.com/2016/02/from-mathematics-to-map-reduce.html
132+
* https://www.haskellforall.com/2016/02/auto-generate-command-line-interface.html
133+
* https://www.haskellforall.com/2016/02/from-mathematics-to-map-reduce.html
219134

220135
## Fun
221136

222-
* http://www.willamette.edu/~fruehr/haskell/evolution.html
137+
* https://www.willamette.edu/~fruehr/haskell/evolution.html

tutorials/00_intro.md

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -10,15 +10,15 @@ It might happen that you encounter a more advanced concept or piece of code that
1010

1111
## Outline
1212

13-
1. [FP and Haskell environment](01_fp-env.md)
14-
2. [Functions and basics of data types](02_functions-types.md)
15-
3. [Structure of code and branching in FP](03_branching.md)
16-
4. [Important data types, handling errors](04_types-errors.md)
17-
5. [Advanced functions, typeclasses intro](05_functions-typeclasses.md)
18-
6. [IO, testing, and documentation](06_io-test-doc.md)
19-
7. [Advanced type classes 1](07_common-typeclasses-1.md)
20-
8. [Advanced type classes 2](08_common-typeclasses-2.md)
21-
9. [Web application in Haskell](09_webapp.md)
22-
10. [Frontend and FRP](10_frontend-frp.md)
23-
11. [Performance and Debugging](11_performance-debug.md)
24-
12. [GHC Extensions and Dependent Types](12_exts-deptypes.md)
13+
1. [FP and Haskell environment](./01_fp-env.md)
14+
2. [Functions and basics of data types](./02_functions-types.md)
15+
3. [Structure of code and branching in FP](./03_branching.md)
16+
4. [Containers and higher-order functions](./04_containers-functions.md)
17+
5. [Typeclasses - custom and predefined](./05_typeclasses.md)
18+
6. [IO in Real Programs](./06_io-exc-typeclasses.md)
19+
7. [Tests, Documentation, Debugging and Performance](./07_test-doc-debug.md)
20+
8. [Web application in Haskell](./08_webapp.md)
21+
9. [Elm - Introduction](./09_elm-intro.md)
22+
10. [Elm - The Elm Architecture](./10_elm-tea.md)
23+
11. [Elm - Building Web Applications](./11_elm-building-web-apps.md)
24+
12. [Elm - Real World Use Cases](./12_elm-real-world-use-cases.md)

0 commit comments

Comments
 (0)