====== Haskell ====== ===== 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://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:soe.zip|Haskell School of Expression}} * [[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