tags :: Programming Languages
Notes on the Haskell programming language.
Haskell code bases to study to learn better swdev The golden rule of software quality Do people here actually build useful programs with Haskell? software dev in haskell 'painlessly' The golden rule of software quality - haskell Pro tips for software design in Haskell http://book.realworldhaskell.org/ — learning haskell from the perspective of a software developer https://www.reddit.com/r/haskell/comments/hz4sec/the_golden_rule_of_software_quality/ haskell and software quality
In this article I try to explain why Haskell keeps being such an important language by presenting some of its most important and distinguishing features and detailing them with working code examples. The presentation aims to be self-contained and does not require any previous knowledge of the language. Appendix to Software Design in Haskell Haskell for all: The golden rule of software quality Do people here actually build useful programs with Haskell? - haskell Do you guys think Haskell is the best language if my intent is to develop a
Solving a puzzle in Haskell Magic: The Gathering in your terminal - madeinhaskell guitar in haskell
http://hackage.haskell.org/package/gloss — 2d graphics library Graphics in Haskell: linear algebra sleexyz/hylogen: GLSL embedded in Haskell hylogen glsl shaders embedded in haskell
https://aaronguo1996.github.io/project/hoogleplus/ hoogle plus :: search for combinations of functions with hoogle! https://hoogleplus.goto.ucsd.edu/ https://aaronguo1996.github.io/project/hoogleplus/ this is the coolest shit
incredible breakdown of how GHC works syntax - What does the `forall` keyword in Haskell/GHC do? - Stack Overflow 9.1. Language options — Glasgow Haskell Compiler 8.10.1 User's Guide https://downloads.haskell.org/~ghc/7.0.1/docs/html/users_guide/rewrite-rules.html IDE 2020: Measuring memory usage of Haskell values and patching GHC Lambda calculus implemented at the type level in GHC
backlinks :: Macros
An excellent Template Haskell Tutorial codeblog/2011-12-27-template-haskell.md at master · leonidas/codeblog https://github.com/JoeyEremondi/haskelm haskell to elm translation with TemplateHaskell
Category theory https://ncatlab.org/nlab/show/comonad#definition Math Haskell and Category TheoryCategory theory Category Theory | Haskell Language Tutorial http://www.haskellforall.com/2013/02/you-could-have-invented-comonads.html
state analysis with monads https://sanderv1992.github.io/fp/monad/ https://bartoszmilewski.com/2017/01/02/comonads/ — monads in reverse; co-categories https://en.wikibooks.org/wiki/Haskell/Monad_transformers — transformers :: operating over monads http://comonad.com/reader/
mikeizbicki/subhask: Type safe interface for working in subcategories of Ha Dependent type roles : haskell haskell-snippets/LambdaToSKI.hs at master · roger-uw/haskell-snippets
https://blog.sumtypeofway.com/posts/fast-iteration-with-haskell.html https://blog.josephmorag.com/posts/mcc1/ http://oleg.fi/gists/posts/2020-04-27-overloaded-local-do.html https://gilmi.me/blog/post/2020/04/28/consider-haskell https://tech.fpcomplete.com/blog/2016/11/covariance-contravariance https://tech.fpcomplete.com/haskell/syllabus https://www.reddit.com/r/haskell/comments/g1ajqe/towards_faster_iteration_in_industrial_haskell/ https://www.reddit.com/r/ProgrammingLanguages/comments/fum1pw/haskell_cheat_sheet/ https://www.reddit.com/r/haskell/comments/x7fyt/smartcheck_a_better_quickcheck_for_testing/ http://hackage.haskell.org/package/mwc-random-accelerate — pseudorandom numbers, accelerate arrays ?? https://mmhaskell.com/machine-learning http://hackage.haskell.org/package/nvvm — no idea, looks cool https://hackage.haskell.org/package/haskeline-0.8.0.0/docs/System-Console-Haskeline.html — ui for interacting with the terminal in haskell https://www.youtube.com/watch?v=uxv62QQajx8 — implementing linear haskell https://www.youtube.com/watch?v=SjxP1NpoP2c — hasktorch ! https://www.youtube.com/watch?v=qWpD8t_Aodk&t=945s — how they made hasktorch https://www.reddit.com/r/haskell/comments/gwdd8/io_evaluates_the_haskell_heap/ https://www.reddit.com/r/programming/comments/gwyq2/implementing_the_haskell_heap_in_python_hint_it/ https://www.reddit.com/r/haskell/comments/fz0ve/the_type_technology_tree_mapping_type_extensions/ https://www.reddit.com/r/haskell/comments/h40qr/unraveling_the_mystery_of_the_io_monad/ https://www.reddit.com/r/haskell/comments/k5okh/lets_play_a_game_how_to_implement_functions_from/ https://www.reddit.com/r/haskell/comments/i29kd/a_pattern_for_avoiding_allocation_inside_t5/ https://www.reddit.com/r/haskell/comments/hlsmv/an_insufficiently_lazy_map_the_dangers_of/ https://www.reddit.com/r/haskell/comments/hcjmm/space_leak_zoo_a_catalog_of_common_space_leaks_in/ https://www.reddit.com/r/haskell/comments/tzp7f/a_gamified_tutorial_on_the_sequent_calculus/ https://www.reddit.com/r/haskell/comments/12irlj/hpd3js_an_interactive_heap_profile_viewer/ https://www.reddit.com/r/haskell/comments/571i8r/galois_is_hiring/ https://www.reddit.com/r/haskell/comments/2b7odl/this_just_in_from_my_local_ghccabal_checkout_re/ https://www.reddit.com/r/haskell/comments/5bkhth/request_for_comment_specifying_versions_soname/ https://www.reddit.com/r/haskell/comments/5erk9u/levity_polymorphism_new_paper_from_richard_and/ https://www.reddit.com/r/haskell/comments/5erk9u/levity_polymorphism_new_paper_from_richard_and/ https://www.reddit.com/r/haskell/comments/5yxbh7/what_bcbreaking_changes_would_you_make_to/ https://www.reddit.com/r/adventofcode/comments/ek4652/2019_day_all_haskell_my_first_journey_through/ https://www.reddit.com/r/compsci/comments/g1rtjo/xpost_rhaskell_i_wrote_an_introduction_to_lambda/ https://alpacaaa.net/thoughts-on-haskell-2020/ https://www.fpcomplete.com/blog/2017/06/readert-design-pattern https://www.tweag.io/posts/2019-02-13-types-got-you.html https://hackage.haskell.org/package/base-4.12.0.0/docs/GHC-Generics.html https://www.snoyman.com/blog/2019/11/boring-haskell-manifesto https://tech.fpcomplete.com/blog/2017/01/quickcheck https://www.parsonsmatt.org/2019/12/26/write_junior_code.html https://talks.diogocastro.com/the-haskell-epidemic/#0 http://www.cse.chalmers.se/%7Erjmh/QuickCheck/ https://www.reddit.com/r/haskell/comments/fz19kg/where_can_i_find_examples_of_haskells_features/ https://www.tweag.io/posts/2020-04-16-exceptions-in-haskell.html https://www.reddit.com/r/haskell/comments/g2y4m1/im_streaming_myself_working_on_ghc_today_if_you/ https://ucsd-progsys.github.io/liquidhaskell-blog/2020/04/12/polymorphic-perplexion.lhs/ https://m.youtube.com/watch?feature=youtu.be&v=kIwd1D9m1gE https://gist.github.com/erebe/a8b0ffd1a27133bcf3b640b64e35f2fb https://www.reddit.com/r/haskell/comments/g0w8g5/can_someone_explain_this_kmett_magic/
wget https://get.haskellstack.org/stable/linux-x86_64-static.tar.gz rm -rf linux-x86_64-static.tar.gz export PATH=$PATH:./s
creating project:
stack new Other simple stack setup getting ncurses5-compat-libs:
Building web apps in haskell This is outdated, I'm using IHP now!
ez web server in haskell client side apps in haskell
https://github.com/raviksharma/bartosz-basics-of-haskell basics of haskell tutorial
The Forth programming language (then make lots of example programs!)
'batteries included haskell framework' https://github.com/digitallyinduced/ihp https://github.com/bergmark/feed haskell package for RSS https://github.com/cdepillabout/termonad haskell terminal emulator https://github.com/AndrasKovacs/setoidtt implementations of systems with setoid type theory https://github.com/jaspervdj/websockets yea https://m.youtube.com/watch?v=FYTZkE5BZ-0 :: make musicwith haskell from scratch https://kowainik.github.io/posts/haskell-mini-patterns haskell mini patterns https://www.reddit.com/r/haskell/comments/hawgff/any_devs_here_interested_in_learning_plutus_and/ https://blog.sigplan.org/2019/12/16/runtime-support-for-multicore-haskell-a-retrospective/ icebreaker fpga https://github.com/mikeizbicki/subhask rewrite of prelude to make numerics fun and fast https://mpickering.github.io//ide/posts/2020-08-04-measuring-memory-size.html measuring memory usage in haskell
https://m.youtube.com/watch?v=65GWGc5LNxc debugging ghc assertion error https://reasonablypolymorphic.com/blog/towards-tactics/index.html navigating the haskell tactics engine https://www.srid.ca/haskell-new-project.html creating a new haskell project with ide support and nix
"A Haskell library that simplifies access to remote data, such as databases or web-based services. " The functional Haskell kernel Developing multiple local packages at once in repl? - haskell Let's build a Cloudflare Worker with WebAssembly and Haskell Implementing a Case Conversion Library in F# and Haskell · maxdeviant.com kwannoel/kattis: Kattis problems in Haskell (maybe Rust? we'll see) kwannoel/haskell_tutorials kwannoel/fingerd: Final haskell project, a finger daemon. Zippers in Haskell and Javascript - My Zettelkasten Other influential disciplines or challenges? - haskell Conal Elliott » “Everything is a function” in Haskell?
effet: An Effect System based on Type Classes - haskell Haskeller competency matrix Solving a puzzle in Haskell. This post isn’t particularly deep or… | by Chr The Haskell Elephant in the Room - YouTube ]"Hackett: a metaprogrammable Haskell" by Alexis King - YouTube Runtime Support for Multicore Haskell: a Retrospective | SIGPLAN Blog raviksharma/bartosz-basics-of-haskell: Code and exercises from Bartosz Mile Announcement/call for contributors: Monpad - haskell
https://lexi-lambda.github.io/resume.html — alexis king — brilliant racket and haskell programmer
he original parsing with derivatives haskell implementation "FPGA Haskell machine with game changing performance. Reduceron is Matthew Naylor, Colin Runciman and Jason Reich's high performance FPGA softcore for running lazy functional programs, including hardware garbage collection. Reduceron has been implemented on various FPGAs with clock frequency ranging from 60 to 150 MHz depending on the FPGA. A high degree of parallelism allows Reduceron to implement graph evaluation very efficiently. This fork aims to continue development on this, with a view to practical applications. Comments, questions, etc are welcome." Haskell-style functional programming language running on Erlang VM. Haskell bindings for the Souffle datalog language Haskell translation of Idris's original algebraic effects library
How Accursed and Unutterable is accursedUnutterablePerformIO? https://ocharles.org.uk/
raft consensus protocol implementation reverse dependency build matrix generator effekt: effect system based on type classes property testing in depth 'vabal': the cabal companion
https://gist.github.com/MaiaVictor/350cd2e318ad884c7c491c3dad7e3b1d
https://typeclasses.com/: a haskell guide, or something https://boarders.github.io/posts/locally-nameless/ cool pl writing based on various papers : ) http://www.newartisans.com/ haskell blogs and ideas https://banana.dog/@yaaps/105019052210553569 https://news.ycombinator.com/item?id=13781467 algebraic subtyping Math CiteSeerX — Functional Programming with Bananas, Lenses, Envelopes and Barbed Wire https://ocharles.org.uk/blog/posts/2019-08-09-who-authorized-these-ghosts.html incredible article on authorization a clever way https://www.youtube.com/watch?v=GQi-6-d5ooQ&app=desktop https://www.reddit.com/r/haskell/comments/i6c0dy/how_to_interpret_recursive_combinators_mean_over/ compile haskell to verilog https://github.com/TOTBWF/refinery: refinement proofs in haskell
https://www.simplehaskell.org/ simple haskell is easier for everyone to use https://www.reddit.com/r/haskell/comments/hjtnxx/light_weight_haskell Observations after the first time writing (simple) Haskell : haskell https://www.haskellforall.com/2014/03/introductions-to-advanced-haskell-topics.html?m=1 http://blog.sigfpe.com/2006/08/algebraic-topology-in-haskell.html?m=1
https://artyom.me/aeson#fromjson-instances-for-other-types the best aeson tutorial
[2016-08-07]
. [2015-06-20]
Do notation expanded [2015-06-20]
monad transformers [[monad]][2018-10-23]
krispo/awesome-haskell: A collection of awesome Haskell links, frameworks, libraries and software. Inspired by awesome projects line. [[haskell]][2018-11-24]
debug: what I learnt during setting app hakyll blog.. [2019-01-06]
Resilient-Haskell-Software - Gwern.net [[haskell]][2019-02-11]
Stackage Server https://www.stackage.org/ [2019-04-14]
debugging ghci [2019-01-05]
debug: stack trace [2019-01-25]
Henry de Valence on Twitter: "7 years ago i was very smart and wrote my website in haskell and now i can’t update it because i forgot how to make a monad out of posts" / Twitter [[haskell]] [[fun]][2016-02-28]
applicative functors [[haskell]][2016-02-28]
monad vs applicative [[haskell]][2016-08-07]
.ihaskell install
jupyter console –kernel haskell
[2015-06-20]
Do notation expandeddo e → e
do { e; stmts } → e >> do { stmts }
do { v <- e; stmts } → e >>= \v -> do { stmts }
do { let decls; stmts} → let decls in do { stmts }
This is not quite the whole story, since v might be a pattern instead of a variable. For example, one can write
do (x:xs) <- foo
bar x
but what happens if foo produces an empty list? Well, remember that ugly fail function in the Monad type class declaration? That’s what happens.
-- l: log type, Monoid
newtype Writer l a = Writer {
runWriter :: (a, l)
}
newtype Reader r a = Reader {
runReader :: r -> a
}
newtype State s a = State {
runState :: s -> (a, s)
}
[2015-06-20]
monad transformers [[monad]]Monad transformers exist only because monads do not compose in general.
MaybeT : provides the construction for (f of Maybe) for any Monad f.
data Compose f g x = Compose (f (g x))
instance (Functor f, Functor g) => Functor (Compose f g) where
fmap f (Compose z) = Compose (fmap (fmap f) z)
instance (Monad f, Monad g) => Monad (Compose f g) where
bind :: Compose f g a -> (a -> Compose f g b) -> Compose f g b
bind (f (g x)) ff =
bind = ???
no way!
f a -> (a -> f b) -> f b
g c -> (c -> g d) -> g d
Looks like @iokasimov can write good #haskell jokes 😏
<https://twitter.com/ChShersh/status/1002393643288686592 >
[2018-10-23]
krispo/awesome-haskell: A collection of awesome Haskell links, frameworks, libraries and software. Inspired by awesome projects line. [[haskell]][2019-04-22]
https://github.com/krispo/awesome-haskell
[2018-11-24]
debug: what I learnt during setting app hakyll blog..[2019-01-06]
Resilient-Haskell-Software - Gwern.net [[haskell]]https://www.gwern.net/Resilient-Haskell-Software
[2019-02-11]
Stackage Server https://www.stackage.org/[2019-04-14]
debugging ghcistack ghci (module loaded automatically)
:set args rebuild
main
:break 222
[2019-01-05]
debug: stack tracestack build --profile
stack exec -- site rebuild +RTS -xc
[2019-01-25]
Henry de Valence on Twitter: "7 years ago i was very smart and wrote my website in haskell and now i can’t update it because i forgot how to make a monad out of posts" / Twitter [[haskell]] [[fun]]<https://twitter.com/hdevalence/status/1088649294746275840 >
[2016-02-28]
applicative functors [[haskell]]regular functor
class Functor f where
fmap :: (a -> b) -> f a -> f b
Laws:
fmap id = id -- Identity
fmap (p . q) = (fmap p) . (fmap q) -- Homomorphism
applicative
class (Functor f) => Applicative f where
pure :: a -> f a
(<*>) :: f (a -> b) -> f a -> f b
Laws:
pure id <*> v = v -- Identity
pure (.) <*> u <*> v <*> w = u <*> (v <*> w) -- Composition
pure f <*> pure x = pure (f x) -- Homomorphism
u <*> pure y = pure ($ y) <*> u -- Interchange
fmap f x = pure f <*> x -- Fmap
The mapping between Haskell functors is a family of functions parameterized by types. For instance, a mapping between the [] functor and the Maybe functor will map a list of a, [a] into Maybe a.
Here’s an example of such a family of functions called safeHead:
safeHead :: [a] -> Maybe a
safeHead [] = Nothing
safeHead (x:xs) = Just x
[2016-02-28]
monad vs applicative [[haskell]]
Rendering context...