Logs: liberachat/#haskell
| 2021-07-26 00:17:19 | <janus> | gotta have them clicks ;) |
| 2021-07-26 00:17:33 | <dsal> | Fused Effects, but no lens? |
| 2021-07-26 00:17:53 | → | hiruji joins (~hiruji@user/hiruji) |
| 2021-07-26 00:17:56 | → | LukeHoersten joins (~LukeHoers@user/lukehoersten) |
| 2021-07-26 00:18:06 | <janus> | arkanoid: if you search for "thesis" here you'll find a couple: https://wiki.haskell.org/Research_papers/Domain_specific_languages |
| 2021-07-26 00:19:01 | <arkanoid> | janus: Prof Moggis got his phd in 1988, the paper is from 1991. Can't say anything about his phd as the italian academic system introduced obrigatory publishing of phd only in 2010 |
| 2021-07-26 00:19:56 | <janus> | oh well, i'll stop searching. but it is nice to know that Clash was developed in a master's thesis. gotta try it one day, i really liked Bluespec... |
| 2021-07-26 00:20:14 | <dsal> | there's that talk about the type safe regex stuff that was really cool and went through some of the process. |
| 2021-07-26 00:20:35 | <arkanoid> | what's Clash? |
| 2021-07-26 00:20:47 | <janus> | it's a DSL for describing hardware, but embedded in haskell |
| 2021-07-26 00:21:07 | <janus> | so kinda like VHDL or Verilog, but with better typing |
| 2021-07-26 00:21:50 | <arkanoid> | whoa1 |
| 2021-07-26 00:22:11 | <janus> | pretty cool, yeah |
| 2021-07-26 00:22:32 | <arkanoid> | https://github.com/gergoerdi/clash-spaceinvaders :D |
| 2021-07-26 00:23:10 | × | LukeHoersten quits (~LukeHoers@user/lukehoersten) (Ping timeout: 265 seconds) |
| 2021-07-26 00:24:56 | ← | delYsid parts (~user@84-115-55-45.cable.dynamic.surfer.at) (ERC (IRC client for Emacs 27.1.50)) |
| 2021-07-26 00:25:34 | → | Kaipi joins (~Kaiepi@nwcsnbsc03w-47-54-173-93.dhcp-dynamic.fibreop.nb.bellaliant.net) |
| 2021-07-26 00:25:35 | × | Kaiepi quits (~Kaiepi@nwcsnbsc03w-47-54-173-93.dhcp-dynamic.fibreop.nb.bellaliant.net) (Remote host closed the connection) |
| 2021-07-26 00:26:34 | × | doyougnu quits (~user@c-73-25-202-122.hsd1.or.comcast.net) (Remote host closed the connection) |
| 2021-07-26 00:27:23 | <arkanoid> | dsal: thanks for the title, smells like domain driven design? |
| 2021-07-26 00:27:24 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 2021-07-26 00:28:06 | <janus> | arkanoid: maybe you know the blog series "24 days of haskell extensions" by ollie charles. but i stumbled over this commentary by Lennart Augustsson which provides some commentary : http://augustss.blogspot.com/ |
| 2021-07-26 00:29:16 | → | LukeHoersten joins (~LukeHoers@user/lukehoersten) |
| 2021-07-26 00:29:16 | <janus> | you can see how Augustsson explains that RankNTypes is an old idea with a bit of history |
| 2021-07-26 00:29:45 | × | slice quits (~slice@user/slice) (Quit: zzz) |
| 2021-07-26 00:30:32 | → | soft-warm joins (~soft-warm@2600:8801:db01:8f0:cb97:ae6d:d0f6:751e) |
| 2021-07-26 00:31:15 | <arkanoid> | thanks. Yeah I've found this blog before but it didn't catch my attention more than other resources, but it was before understanding at least the very basics of haskell |
| 2021-07-26 00:35:02 | → | euouae joins (~euouae@user/euouae) |
| 2021-07-26 00:35:21 | <euouae> | Hello I am trying to install Haskell on this macOS |
| 2021-07-26 00:35:35 | <euouae> | I thought there was a Haskell platform I could install, but apparently not, was it discontinued? |
| 2021-07-26 00:36:32 | <geekosaur> | it was |
| 2021-07-26 00:37:01 | <arkanoid> | euouae: I'm a new haskell user and I've started by using stack https://docs.haskellstack.org/en/stable/README/ |
| 2021-07-26 00:37:07 | <euouae> | Great, thank you |
| 2021-07-26 00:37:08 | <geekosaur> | generally the best way to start is to use ghcup to install ghc, then install stuff as needed in cabal or stack projects |
| 2021-07-26 00:37:30 | <euouae> | arkanoid: nice! What's your goal? |
| 2021-07-26 00:37:43 | <euouae> | arkanoid: I learned Haskell out of curiosity but I'm finding it very useful lately |
| 2021-07-26 00:38:03 | <euouae> | "learned" means I learned some basics :P |
| 2021-07-26 00:38:28 | <arkanoid> | I want to improve my generally programming abilities by understanding how haskell tackles complexity. I'm an imperative programmer on my daily job |
| 2021-07-26 00:40:30 | <euouae> | Can you make ghcup use the XDG spec? |
| 2021-07-26 00:41:41 | <euouae> | arkanoid: nice, so you're not going for a specific library or tool then? |
| 2021-07-26 00:42:34 | <euouae> | never mind I read the script, there's GHCUP_USE_XDG_DIRS |
| 2021-07-26 00:43:33 | <Axman6> | euouae: https://www.haskell.org/downloads/ is probably the most up to date documentation. IMO I would start with installing ghcup |
| 2021-07-26 00:43:47 | <arkanoid> | not yet. I mean. Quickcheck is interesting |
| 2021-07-26 00:43:57 | × | Deide quits (~Deide@user/deide) (Ping timeout: 265 seconds) |
| 2021-07-26 00:44:24 | <euouae> | Axman6, thank you |
| 2021-07-26 00:45:14 | <Axman6> | stack is also not a bad iption for someone getting started, it removes a bit of the need to know about how to use cabal |
| 2021-07-26 00:45:51 | <Axman6> | option* |
| 2021-07-26 00:46:01 | <Axman6> | an installing ghcup can also install stack |
| 2021-07-26 00:46:31 | <janus> | arkanoid: you should check out hedgehog too, it is not based so much on the lawless typeclass |
| 2021-07-26 00:50:04 | <arkanoid> | may I ask you what do you mean by lawless typeclass? |
| 2021-07-26 00:50:05 | × | MQ-17J quits (~MQ-17J@d14-69-206-129.try.wideopenwest.com) (Read error: Connection reset by peer) |
| 2021-07-26 00:50:14 | → | MQ-17J joins (~MQ-17J@d14-69-206-129.try.wideopenwest.com) |
| 2021-07-26 00:50:21 | × | nate3 quits (~nate@108-233-125-227.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 258 seconds) |
| 2021-07-26 00:50:35 | <Axman6> | arkanoid: IMO, Haskell is excellent for handling complexity - abstractions can be simple and powerful, and refactoring in |
| 2021-07-26 00:51:15 | <Axman6> | haskell is a joy most of the time - refactor fealessly (as long as you follow a few simple rules that prevent introduced errors showin gup, like using wildcard patterns in case statements etc.) |
| 2021-07-26 00:51:55 | <janus> | arkanoid: here is an example of some typeclass laws: https://hackage.haskell.org/package/base-4.15.0.0/docs/Data-Functor.html#t:Functor |
| 2021-07-26 00:52:12 | <Axman6> | Refactoring large code bases is enerally done by: make the change you know you need to make, then follw the errors until it compiles again, and this is much more likely to result in working code than most other languages |
| 2021-07-26 00:52:45 | <janus> | arkanoid: sometimes it is hard to choose a canonical instance, i think this is why there is no Monoid Integer for example, they would have to choose either multiplication or addition |
| 2021-07-26 00:53:36 | <janus> | arkanoid: but regarding testing, it is pretty common to want a specific distribution. so that is one argument against Arbitrary from QuickCheck, you'd have to choose a canonical distribution |
| 2021-07-26 00:54:40 | <janus> | arkanoid: another argument could be that it would make you put the Arbitrary instances in the module with the code you want to test, to avoid orphan instances. but a lot of people prefer having the testing code in a separate directory tree |
| 2021-07-26 00:55:34 | <janus> | i dunno if these are the universally recognized reasons, and of course there are many different opinions on this, and probably QuickCheck works great for a lot of people. i just thought you'd be interested in checking out hedgehog too |
| 2021-07-26 00:56:55 | × | chomwitt quits (~chomwitt@ppp-94-67-193-120.home.otenet.gr) (Remote host closed the connection) |
| 2021-07-26 00:57:08 | <janus> | dunno if my answer was too indirect, i can try again... |
| 2021-07-26 00:58:27 | <arkanoid> | I have to admit that I hardly grasped the meaning, but I've saved it for the future |
| 2021-07-26 00:58:42 | <janus> | arkanoid: do you know what orphan instances are? |
| 2021-07-26 00:59:45 | <arkanoid> | reading just now |
| 2021-07-26 01:00:24 | × | LukeHoersten quits (~LukeHoers@user/lukehoersten) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 2021-07-26 01:01:28 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 258 seconds) |
| 2021-07-26 01:02:15 | <Axman6> | It can take a while before you run into the issues with quickcheck, I think https://www.youtube.com/watch?v=boBD1qhCQ94 might cover some of them, though |
| 2021-07-26 01:02:40 | <Axman6> | I think there's also another good lambdajam talk about tge benefits of hedgehog, and usually quickcheck is introduced first |
| 2021-07-26 01:03:08 | <Axman6> | actually, https://www.youtube.com/watch?v=AIv_9T0xKEo might be a better place to to start |
| 2021-07-26 01:04:50 | <arkanoid> | thanks! A lot of material to grok in a single day, and actually I've exausted my batteries and need some sleep now |
| 2021-07-26 01:05:03 | <dsal> | I've still never tried hedgehog. You can get pretty far with qc |
| 2021-07-26 01:05:11 | <arkanoid> | I'd like to thank you for the help and for the hints |
| 2021-07-26 01:05:16 | <janus> | good night |
| 2021-07-26 01:06:20 | → | lavaman joins (~lavaman@98.38.249.169) |
| 2021-07-26 01:10:52 | × | lavaman quits (~lavaman@98.38.249.169) (Ping timeout: 256 seconds) |
| 2021-07-26 01:11:05 | <janus> | wow, that last Axman6 talk has graphs of the generator combinators. that should totally be in the docs like with reanimate, so useful |
| 2021-07-26 01:11:37 | <Axman6> | PR's welcome :P |
| 2021-07-26 01:11:54 | → | xff0x joins (~xff0x@2001:1a81:523c:b300:f2c1:fc0d:e213:d303) |
| 2021-07-26 01:13:35 | × | Atum_ quits (~IRC@user/atum/x-2392232) (Quit: Atum_) |
| 2021-07-26 01:14:04 | <janus> | i'll take a stab at it. those diagrams are too simple to be copyrightable |
| 2021-07-26 01:14:33 | → | nate3 joins (~nate@108-233-125-227.lightspeed.sntcca.sbcglobal.net) |
| 2021-07-26 01:15:36 | × | xff0x_ quits (~xff0x@port-92-195-69-103.dynamic.as20676.net) (Ping timeout: 268 seconds) |
| 2021-07-26 01:15:46 | → | khumba joins (~khumba@user/khumba) |
| 2021-07-26 01:19:50 | × | nate3 quits (~nate@108-233-125-227.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 252 seconds) |
| 2021-07-26 01:20:51 | → | __xor joins (~xor@74.215.232.67) |
| 2021-07-26 01:22:14 | × | _xor quits (~xor@74.215.232.67) (Ping timeout: 255 seconds) |
| 2021-07-26 01:23:37 | × | cjb quits (~cjb@user/cjb) (Ping timeout: 256 seconds) |
| 2021-07-26 01:26:23 | × | MQ-17J quits (~MQ-17J@d14-69-206-129.try.wideopenwest.com) (Read error: Connection reset by peer) |
| 2021-07-26 01:27:22 | → | cjb joins (~cjb@user/cjb) |
| 2021-07-26 01:29:20 | → | nate3 joins (~nate@108-233-125-227.lightspeed.sntcca.sbcglobal.net) |
| 2021-07-26 01:29:26 | → | MQ-17J joins (~MQ-17J@d14-69-206-129.try.wideopenwest.com) |
| 2021-07-26 01:34:12 | × | eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
| 2021-07-26 01:34:12 | × | MQ-17J quits (~MQ-17J@d14-69-206-129.try.wideopenwest.com) (Read error: Connection reset by peer) |
| 2021-07-26 01:34:19 | → | MQ-17J joins (~MQ-17J@d14-69-206-129.try.wideopenwest.com) |
| 2021-07-26 01:35:20 | <euouae> | How can I get all 01 sequences of length n in Haskell? |
| 2021-07-26 01:36:00 | → | eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
| 2021-07-26 01:36:15 | <Axman6> | > replicateM 10 "01" |
| 2021-07-26 01:36:17 | <lambdabot> | ["0000000000","0000000001","0000000010","0000000011","0000000100","000000010... |
All times are in UTC.