This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
programming:haskell [2015/12/27 20:31] robert_pergl |
programming:haskell [2017/08/06 19:04] (current) marek_suchanek [Databases] |
||
---|---|---|---|
Line 1: | Line 1: | ||
====== Haskell ====== | ====== Haskell ====== | ||
- | ===== Fundamental ===== | + | ===== Rationale ===== |
+ | * {{:programming:why_functional_programming_matters.pdf}} | ||
+ | * {{:programming:how_functional_programming_mattered.pdf}} | ||
+ | * https://dzone.com/articles/why-haskell-matters | ||
+ | * http://programmers.stackexchange.com/questions/279316/what-exactly-makes-the-haskell-type-system-so-revered-vs-say-java/ | ||
+ | * https://www.reddit.com/r/haskell/comments/3f4s3r/advantages_and_disadvantages_of_haskell_in/ | ||
+ | * https://code.facebook.com/posts/745068642270222/fighting-spam-with-haskell/ | ||
+ | * https://www.reddit.com/r/haskell/comments/3h7fqr/what_are_haskellers_critiques_of_scala/ | ||
+ | * https://www.reddit.com/r/haskell/comments/3h5og6/i_now_tend_to_think_that_the_concepts_behind_all/ | ||
+ | * http://jfeltz.com/posts/2015-08-30-cost-decreasing-software-architecture.html | ||
+ | * https://medium.com/@bryanmikaelian/haskell-changed-me-f98ebbb84333 | ||
+ | * http://www.leonmergen.com/code/2015/12/04/on-stateless-software-design-what-is-state.html | ||
+ | * https://www.futurelearn.com/courses/functional-programming-haskell/1/steps/115453 | ||
+ | * http://baatz.io/posts/haskell-in-a-startup/ | ||
+ | * https://lexi-lambda.github.io/blog/2016/06/12/four-months-with-haskell/?utm_source=all | ||
+ | * http://www.stephendiehl.com/posts/production.html | ||
+ | * https://www.reddit.com/r/haskell/comments/46jaqx/i_really_want_to_use_haskell_but_im_having/ | ||
+ | * https://www.wagonhq.com/blog/haskell-for-industry | ||
+ | * http://www.lihaoyi.com/post/WhatsFunctionalProgrammingAllAbout.html | ||
+ | * https://kseo.github.io/posts/2017-01-27-how-i-learned-haskell.html | ||
+ | * https://hackernoon.com/easing-haskells-intimidating-glare-2341095e88aa | ||
+ | * https://www.fpcomplete.com/blog/2016/11/mastering-time-to-market-haskell | ||
+ | |||
+ | ===== Courses and Fundamental topics ===== | ||
* [[http://learnyouahaskell.com|Learn You a Haskell for Great Good (LYAH)]] | * [[http://learnyouahaskell.com|Learn You a Haskell for Great Good (LYAH)]] | ||
+ | * http://haskellbook.com/ | ||
+ | * [[https://www.edx.org/course/introduction-functional-programming-delftx-fp101x-0]] | ||
* {{:programming:haskell_-_the_craft_of_functional_programming_3ed.pdf|The Craft of Functional Programming}} | * {{:programming:haskell_-_the_craft_of_functional_programming_3ed.pdf|The Craft of Functional Programming}} | ||
* {{:programming:soe.zip|Haskell School of Expression}} | * {{:programming:soe.zip|Haskell School of Expression}} | ||
* [[http://book.realworldhaskell.org/|Real World Haskell]] | * [[http://book.realworldhaskell.org/|Real World Haskell]] | ||
+ | * [[http://dev.stephendiehl.com/hask/|What I Wish I Knew When Learning Haskell]] | ||
+ | * https://wiki.haskell.org | ||
+ | * https://www.fpcomplete.com/ | ||
+ | * http://nptel.ac.in/courses/106106137/ | ||
+ | * https://www.reddit.com/r/haskell/comments/3j36wc/haskell_tutorial_collection/ | ||
+ | * http://www.happylearnhaskelltutorial.com/ | ||
+ | * http://learn.hfm.io/higher_order.html | ||
+ | * https://github.com/takenobu-hs/type-introduction-illustrated | ||
+ | * http://stackoverflow.com/questions/15530511/how-to-edit-nth-element-in-a-haskell-list | ||
+ | * [[https://www.youtube.com/playlist?list=PLsAEIIjTPIo83ufYYkaPjUwZUuTe1LoZP|Lectures RWTH AACHEN UNIVERSITY on YouTube]] | ||
+ | * http://www.scs.stanford.edu/11au-cs240h/notes/ | ||
+ | * https://www.futurelearn.com/courses/functional-programming-haskell | ||
+ | * https://m.reddit.com/r/haskell/comments/4ooxqc/does_anyone_have_a_progressive_list_of_beginner/ | ||
+ | * http://cheatsheet.codeslower.com/ | ||
+ | * [[https://github.com/warreee/haskell|Haskell Exercises]] | ||
+ | * http://lotz84.github.io/haskellbyexample/ | ||
+ | * http://ndmitchell.com/downloads/slides-drive-by_haskell_contributions-09_jun_2017.pdf | ||
+ | * http://bitemyapp.com | ||
+ | * https://kseo.github.io/posts/2017-01-28-build-your-haskell-project-continuously.html | ||
+ | * http://www.atamo.com/articles/how-to-read-pearls-by-richard-bird/ | ||
+ | * https://mmhaskell.com/blog/2017/1/30/the-easiest-haskell-idiom | ||
+ | |||
+ | |||
+ | ===== Problems Solving ===== | ||
+ | * https://www.reddit.com/r/haskell/comments/469n8s/best_practices_for_modifiable_state_in_haskell/ | ||
+ | * https://www.youtube.com/watch?v=p-NBJm0kIYU | ||
+ | * http://research.microsoft.com/en-us/um/people/simonpj/papers/financial-contracts/contracts-icfp.htm | ||
+ | * https://www.reddit.com/r/haskell/comments/3ez1k4/how_would_you_design_this_program_in_haskell/ | ||
+ | * http://blog.ezyang.com/2010/05/design-patterns-in-haskel/ | ||
+ | * https://www.reddit.com/r/haskell/comments/3r8x5m/best_way_to_model_a_deck_of_cards/ | ||
+ | * http://ideas.cs.uu.nl/FPTutor/ | ||
+ | * http://www.parsonsmatt.org/2015/12/09/exploratory_haskell.html | ||
+ | * http://abailly.github.io/posts/event-source.html | ||
+ | * https://mmhaskell.com/blog/2017/7/24/getting-the-users-opinion-options-in-haskell | ||
+ | ===== Specific Topics ===== | ||
+ | * https://hackhands.com/lazy-evaluation-works-haskell/ | ||
+ | * http://jelv.is/blog/Haskell-Monads-and-Purity/ | ||
+ | * http://brandon.si/code/the-state-monad-a-tutorial-for-the-confused/ | ||
+ | * http://www.haskellforall.com/2015/10/polymorphism-for-dummies.html | ||
+ | * http://www.gilmi.xyz/post/2015/08/12/how-haskell-models-io | ||
+ | * https://www.reddit.com/r/haskell/comments/3hqvzi/how_to_accomplish_edits_of_a_large_dataset_in | ||
+ | * https://www.reddit.com/r/haskell/comments/3is2ay/what_gui_libray_do_you_userecommend/ | ||
+ | * https://www.reddit.com/r/haskell/comments/3wxggs/whats_the_best_way_to_create_gui_for_haskell/ | ||
+ | * http://www.alexeyshmalko.com/2015/haskell-string-types/ | ||
+ | * https://www.reddit.com/r/haskell/comments/3u5ryh/fast_way_to_serialize_haskell_objects/ | ||
+ | * http://kwangyulseo.com/2014/02/06/multi-line-strings-in-haskell/ | ||
+ | * https://github.com/asivitz/Hickory | ||
+ | * https://m.reddit.com/r/haskell/comments/4vh4sg/recommended_way_of_dealing_with_db_associations/ | ||
+ | * https://m.reddit.com/r/haskell/comments/4shcin/whats_the_best_way_to_create_prebuilt_binaries_of/ | ||
+ | * https://two-wrongs.com/parser-combinators-parsing-for-haskell-beginners | ||
+ | * https://jeltsch.wordpress.com/2016/02/22/generic-programming-in-haskell/ | ||
+ | * http://blog.ssanj.net/posts/2014-09-23-A-Simple-Reader-Monad-Example.html | ||
+ | * https://www.athiemann.net/2017/07/02/superrecord.html | ||
+ | * https://www.schoolofhaskell.com/user/fumieval/encoding-objects | ||
+ | * http://www.stephendiehl.com/posts/strings.html | ||
+ | * https://mmhaskell.com/blog/2017/5/15/untangling-haskells-strings | ||
+ | * https://medium.com/@jonathangfischoff/the-partial-options-monoid-pattern-31914a71fc67 | ||
+ | * http://vaibhavsagar.com/blog/2017/05/29/imperative-haskell/ | ||
+ | * https://hackernoon.com/type-class-patterns-and-anti-patterns-efd045c5af66 | ||
+ | * https://philipnilsson.github.io/Badness10k/posts/2017-05-07-escaping-hell-with-monads.html | ||
+ | * https://medium.com/@sjsyrek/five-minutes-to-monoid-fe6f364d0bba | ||
+ | * http://foswiki.cs.uu.nl/foswiki/pub/Swierstra/ResearchTalks/tree-oriented-programming-slides.pdf | ||
+ | * https://hackernoon.com/typeclass-instance-selection-fea1068920e6 | ||
+ | * https://two-wrongs.com/dynamic-dispatch-in-haskell-how-to-make-code-extendable | ||
+ | * https://e.xtendo.org/monad#1 | ||
+ | * http://www.cs.nott.ac.uk/~pszgmh/fold.pdf | ||
+ | * http://www.parsonsmatt.org/2017/02/17/ooph_data_inheritance.html | ||
+ | |||
+ | ==== Lenses ==== | ||
+ | | ||
+ | |||
+ | * http://www.haskellforall.com/2013/05/program-imperatively-using-haskell.html | ||
+ | * https://m.reddit.com/r/haskell/comments/4s84tc/examples_of_why_lens_is_useful/ | ||
+ | * http://www.mchaver.com/posts/2017-07-12-lens-tutorial-1.html | ||
+ | |||
+ | ==== Databases ==== | ||
+ | |||
+ | * http://stackoverflow.com/questions/104960/are-there-any-orm-tools-for-haskell | ||
+ | * https://github.com/begriffs/postgrest/blob/master/README.md | ||
+ | |||
+ | ==== GUI ==== | ||
+ | |||
+ | * https://begriffs.com/posts/2016-07-27-tikhon-on-frp.html | ||
+ | * https://github.com/gelisam/frp-zoo | ||
+ | * https://www.stackbuilders.com/tutorials/haskell/gui-application/ | ||
+ | |||
+ | ===== Tooling ===== | ||
+ | * https://www.haskell.org/hoogle/ | ||
+ | * https://github.com/alanz/HaRe | ||
+ | * [[https://www.fpcomplete.com/auth/login|FP Haskell Center]] | ||
+ | * https://www.reddit.com/r/haskell/comments/3ni7fb/is_there_any_ide_or_plugin_for_haskell_that_does/ | ||
+ | * https://www.reddit.com/r/haskell/comments/3oa0ht/is_there_a_simple_way_to_automatically_visualize/ | ||
+ | * https://www.reddit.com/r/haskell/comments/3voe9p/debugging_haskell_programs/ | ||
+ | * [[https://functor.tokyo/blog/2017-07-28-ghc-warnings-you-should-enable|GHC Warnings You Should Use in Addition to -Wall]] | ||
+ | |||
+ | ==== VIM ==== | ||
+ | |||
+ | * http://www.stephendiehl.com/posts/vim_haskell.html | ||
+ | * http://blog.mno2.org/posts/2011-11-17-vim-plugins-for-haskell-programmers.html | ||
+ | * https://github.com/eagletmt/neco-ghc | ||
+ | * https://github.com/begriffs/haskell-vim-now | ||
+ | |||
+ | ==== Interactive "worksheets" ==== | ||
+ | |||
+ | * https://github.com/theam/haskell-do/ | ||
+ | * https://github.com/gibiansky/IHaskell | ||
+ | * https://begriffs.com/posts/2016-01-20-ihaskell-notebook.html | ||
+ | * https://github.com/HeinrichApfelmus/hyper-haskell | ||
+ | ===== Libraries ===== | ||
+ | * https://github.com/krispo/awesome-haskell | ||
+ | * http://haskelliseasy.readthedocs.io/en/latest/ | ||
+ | * http://www.haskellforall.com/2015/08/state-of-haskell-ecosystem-august-2015.html?m=1 | ||
+ | * http://projects.haskell.org/diagrams/doc/quickstart.html | ||
+ | |||
+ | ===== Architecture ===== | ||
+ | |||
+ | * http://stackoverflow.com/questions/3077866/large-scale-design-in-haskell | ||
+ | * http://stackingyourmonads.benkolera.com/#/ | ||
+ | * https://dshevchenko.biz/hs-research/Haskell-in-the-Large.pdf | ||
+ | |||
+ | ===== Web Development ===== | ||
+ | |||
+ | * https://www.stackbuilders.com/tutorials/functional-full-stack/purescript-bridge/ | ||
+ | ==== Server Side ==== | ||
+ | * https://www.slant.co/topics/727/~haskell-web-frameworks-for-building-restful-web-services | ||
+ | * http://stackoverflow.com/questions/5645168/comparing-haskells-snap-and-yesod-web-frameworks | ||
+ | * http://zyghost.com/articles/Renderable.html | ||
+ | * https://robots.thoughtbot.com/a-rest-api-with-haskell-and-snap | ||
+ | |||
+ | ==== Client Side ==== | ||
+ | * http://haste-lang.org/ | ||
+ | * https://github.com/ghcjs/ghcjs | ||
+ | * https://www.airpair.com/haskell/posts/haskell-tutorial-introduction-to-web-apps | ||
+ | * http://ifeanyi.co/posts/client-side-haskell/ | ||
+ | * https://speakerdeck.com/mkscrg/electron-react-and-haskell-oh-my | ||
+ | * http://stackoverflow.com/questions/9210412/recommended-reading-tutorials-to-understand-reactive-banana-frp-library | ||
+ | |||
+ | ===== Examples and Projects ===== | ||
+ | * https://m.reddit.com/r/haskell/comments/571tu3/what_are_some_good_open_source_projects_for/ | ||
+ | * http://utdemir.com/posts/modeling-the-hardest-logic-puzzle-ever-in-haskell.html | ||
+ | * http://zyghost.com/articles/Renderable.html | ||
+ | * https://www.reddit.com/r/haskell/comments/3l2b7q/good_midsized_projects_for_learning_haskell/ | ||
+ | * https://gist.github.com/ToJans | ||
+ | * https://www.reddit.com/r/haskell/comments/3pqdln/large_applications_written_using_frp/ | ||
+ | * https://github.com/divipp/lensref/wiki | ||
+ | * [[https://www.youtube.com/watch?v=sl2zo7tzrO8|The Road to Running Haskell at Facebook Scale]] | ||
+ | * [[https://lotz84.github.io/haskellbyexample/|Haskell by Example (port of "Go by Example")]] | ||
+ | * https://m.reddit.com/r/haskell/comments/557fx1/how_to_model_road_intersections/ | ||
+ | * http://bitemyapp.com/posts/2015-04-26-installing-a-haskell-game.html | ||
+ | * https://github.com/pmikkelsen/game-of-life | ||
+ | * https://github.com/rjohnsondev/haskellshop | ||
+ | * https://github.com/google/codeworld | ||
+ | * https://github.com/jtdaugherty/brick | ||
+ | * https://github.com/lunky/IntroToFunctionalProgramming | ||
+ | * http://www.kovach.me/posts/2014-08-09-twitter.html | ||
+ | |||
+ | |||
+ | ===== Style ===== | ||
+ | * http://stackoverflow.com/questions/7746894/are-there-pronounceable-names-for-common-haskell-operators | ||
+ | * https://www.reddit.com/r/haskell/comments/3ple0s/google_styleguide_for_haskell/ | ||
+ | * https://m.reddit.com/r/haskell/comments/578amb/haskell_code_standards/ | ||
+ | |||
+ | ===== Advanced ===== | ||
+ | * https://ocharles.org.uk/blog/pages/2014-12-01-24-days-of-ghc-extensions.html | ||
+ | * [[http://bartoszmilewski.com/2014/10/28/category-theory-for-programmers-the-preface/|Category Theory for Programmers]] | ||
+ | * https://www.reddit.com/r/haskell/comments/3m9nyp/category_theory_the_essence_of_interfacebased/ | ||
+ | * https://www.reddit.com/r/haskell/comments/3k17md/is_there_anything_more_powerful_than_monads/ | ||
+ | * https://www.reddit.com/r/haskell/comments/3lnhkp/monad_and_comonad_insights/ | ||
+ | * http://fvisser.nl/post/2013/okt/1/fclabels-2.0.html | ||
+ | * http://www.parsonsmatt.org/2015/11/15/template_haskell.html | ||
+ | * https://www.reddit.com/r/haskell/comments/3vfrik/can_i_put_constraints_on_type_constructors/ | ||
+ | * https://www.reddit.com/r/haskell/comments/3wxh7a/transducers_why_and_how/ | ||
+ | * https://www.reddit.com/r/haskell/comments/3wkofz/traversal_of_lens_with_maybe_fields/ | ||
+ | * https://wiki.haskell.org/GADTs_for_dummies | ||
+ | * https://m.reddit.com/r/haskell/comments/4sihcv/haskell_the_bad_parts/ | ||
+ | * https://blog.jle.im/entry/io-monad-considered-harmful.html | ||
+ | * https://m.reddit.com/r/haskell/comments/4prbba/what_can_i_do_with_comaybe/ | ||
+ | * http://www.haskellforall.com/2016/02/auto-generate-command-line-interface.html | ||
+ | * http://www.haskellforall.com/2016/02/from-mathematics-to-map-reduce.html | ||
+ | |||
+ | ===== Fun ===== | ||
+ | |||
+ | * http://www.willamette.edu/~fruehr/haskell/evolution.html | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||