2022-12-19 00:00:04 +0100 | <geekosaur> | I'd say true because that even permeates the compiler, which tries to rewrite things into compositions and then rearranges those |
2022-12-19 00:00:18 +0100 | <geekosaur> | Lisp is also based on lambda callculus, but privileges a different aspect of it |
2022-12-19 00:00:24 +0100 | <Inst> | but haskell at least has ridiculous favoritism to composition as a mode of thinking etc within the compiler |
2022-12-19 00:00:38 +0100 | xacktm | (~xacktm@user/xacktm) (Quit: fBNC - https://bnc4free.com) |
2022-12-19 00:00:45 +0100 | andreas303 | (andreas303@ip227.orange.bnc4free.com) (Quit: fBNC - https://bnc4free.com) |
2022-12-19 00:01:18 +0100 | <Inst> | I'm only trivially familiar with Lisp, I'm thinking about picking up Racket just to get a hold of meta-programming, and because Haskell is hard when you want to do IO, to make productive, non-trivial programs |
2022-12-19 00:01:26 +0100 | <EvanR> | fusion basically requires thinking of stuff as compositions |
2022-12-19 00:01:59 +0100 | <EvanR> | the IO type is great |
2022-12-19 00:02:17 +0100 | <EvanR> | stash it in a data structure, send one through a channel, lol |
2022-12-19 00:02:23 +0100 | <Inst> | it's not, one, IO is not trivially decomposable, no? |
2022-12-19 00:02:24 +0100 | <geekosaur> | I don't find Haskell that hard. phrasing something well for the Haskell view of IO is hard, but usually worth it because it helps you separate concerns |
2022-12-19 00:02:38 +0100 | <Inst> | More specifically, I'm comfortable with readFile / writeFile |
2022-12-19 00:02:38 +0100 | <geekosaur> | you could sort of think of it as MVC taken to its limit |
2022-12-19 00:02:47 +0100 | <Inst> | but you need to understand IO libs |
2022-12-19 00:02:57 +0100 | <Inst> | then there's a preference for streaming IO over lazy IO / strict IO |
2022-12-19 00:03:19 +0100 | <EvanR> | isn't there a preference of streaming everywhere? |
2022-12-19 00:03:34 +0100 | <geekosaur> | and even more than composition, Haskell privileges continuations |
2022-12-19 00:03:44 +0100 | <Inst> | continuations I don't get, unfortunately |
2022-12-19 00:04:05 +0100 | <Inst> | Cont monad, I'm aware of, but don't really understand, nor do I understand how to program in CPS style |
2022-12-19 00:04:25 +0100 | <Inst> | especially since, afaik, CPS doesn't present substantial performance benefits in Haskell |
2022-12-19 00:04:34 +0100 | <geekosaur> | don't worry, almost nobody understands Cont 🙂 |
2022-12-19 00:04:40 +0100 | <Inst> | "mother of all monads" |
2022-12-19 00:04:45 +0100 | <Inst> | i.e, all monads can be generated from Contd |
2022-12-19 00:04:52 +0100 | <Inst> | ContT |
2022-12-19 00:04:52 +0100 | <EvanR> | CPS versions of many libs exist for performance basically |
2022-12-19 00:05:20 +0100 | <EvanR> | there's a CPS Writer monad |
2022-12-19 00:05:22 +0100 | <geekosaur> | and the compiler rewrites everything it can to CPS |
2022-12-19 00:05:33 +0100 | <Inst> | but the IO complaint basically comes down to, beyond IO readFile / writeFile, most IO is unergonomic / requires libraries to be ergonomic |
2022-12-19 00:05:43 +0100 | <Inst> | is CPS writer monad cancer? |
2022-12-19 00:05:46 +0100 | <Inst> | I'm told WriterT is cancer |
2022-12-19 00:06:02 +0100 | <Inst> | as of 2020, still space-leaking like a universe |
2022-12-19 00:06:12 +0100 | <geekosaur> | that's because of the limitations of WriterT |
2022-12-19 00:06:12 +0100 | <EvanR> | I/O is unergonomic, that's not haskell's fault xD |
2022-12-19 00:06:43 +0100 | <EvanR> | Writer is fine, but maybe the naming is to evocative |
2022-12-19 00:06:46 +0100 | <Inst> | but the reason I'm headed to Racket next is because most IO things you want to do are handled by IO libs |
2022-12-19 00:07:07 +0100 | <Inst> | and I find it very hard to "get" or master IO libs, in part because IO layer seems substantially harder to train / practice than pure layer |
2022-12-19 00:07:14 +0100 | <geekosaur> | and there's not a lot of pressure to fix it because nobody to speak of uses it, because of its limitations (which have less to do with space leaks than with an earlier discussion you missed) |
2022-12-19 00:07:33 +0100 | <geekosaur> | [18 20:38:05] <c_wraith> sort of, yeah. a good logger gets things onto disk as fast as possible |
2022-12-19 00:07:33 +0100 | <geekosaur> | [18 20:38:26] <c_wraith> Writer accumulates things and completes (or fails) the whole computation before logging anything |
2022-12-19 00:07:37 +0100 | <Inst> | I'm on Windows, and IIRc Hecate's working on GUI lib |
2022-12-19 00:07:54 +0100 | <Inst> | I honestly dislike Monads and would prefer a different effect system if possible, tbh |
2022-12-19 00:08:02 +0100 | <geekosaur> | but Writer looks like something for logging |
2022-12-19 00:08:13 +0100 | shailangsa | (~shailangs@host217-39-45-196.range217-39.btcentralplus.com) () |
2022-12-19 00:08:21 +0100 | <Inst> | whereas Writer keeps a log within pure code |
2022-12-19 00:08:32 +0100 | <EvanR> | no, it's not good for logging period |
2022-12-19 00:08:42 +0100 | <Inst> | then provides a dump of it on request |
2022-12-19 00:08:55 +0100 | <geekosaur> | you've come to an odd place if you dislike monads |
2022-12-19 00:08:57 +0100 | <EvanR> | you can't even do that with Writer xD |
2022-12-19 00:09:09 +0100 | <Hecate> | I am nowhere near completion wrt to ghcup's GTK interface |
2022-12-19 00:09:15 +0100 | <Hecate> | (help very much welcome btw) |
2022-12-19 00:09:21 +0100 | <Hecate> | (GTK is kicking my ass) |
2022-12-19 00:09:23 +0100 | <geekosaur> | and may be in trouble as the concept, if not the implementation, is making inroads in a number of languages |
2022-12-19 00:09:24 +0100 | <Inst> | wish I could help you |
2022-12-19 00:09:32 +0100 | <monochrom> | At this point I'm convinced that everyone disagree on what "logging" means. |
2022-12-19 00:09:32 +0100 | <dibblego> | I don't even know what it means to dislike monads |
2022-12-19 00:09:53 +0100 | <Inst> | dibblego: understanding / misunderstanding papers talking about limitations of monads |
2022-12-19 00:10:06 +0100 | <Hecate> | The Applicative zealots are back at it again |
2022-12-19 00:10:21 +0100 | <Inst> | the anti-monad argument comes as "monads are a transitional form of effect systems and there has to be a better way to do algebraic effects than with monads" |
2022-12-19 00:10:48 +0100 | <geekosaur> | sadly, nobody's actually found one yet |
2022-12-19 00:10:49 +0100 | <dibblego> | that argument is more to do with "effects" than monads |
2022-12-19 00:10:52 +0100 | <Inst> | I'd think it's just rare to hate monads for other reasons than "monads are hard" |
2022-12-19 00:10:59 +0100 | <Inst> | also, pure code isn't really pure ;) |
2022-12-19 00:11:03 +0100 | <Inst> | because they side effect space and time |
2022-12-19 00:11:10 +0100 | <EvanR> | monads aren't effect systems so that's an issue right there |
2022-12-19 00:11:15 +0100 | <Inst> | which is where mtl etc, barris alexis king's efforts, suck |
2022-12-19 00:11:18 +0100 | <dibblego> | "hate monads" invokes the same feeling as "hating the number 3" |
2022-12-19 00:11:25 +0100 | <Inst> | I love the number 9 |
2022-12-19 00:11:32 +0100 | <dibblego> | I don't, because it's not 8 |
2022-12-19 00:11:32 +0100 | <Inst> | because it's the first number in the multiplication table my mother taught me |
2022-12-19 00:11:57 +0100 | <monochrom> | 6 is very afraid. |
2022-12-19 00:12:16 +0100 | <EvanR> | (:[]) 6 |
2022-12-19 00:12:17 +0100 | Lycurgus | (~juan@user/Lycurgus) |
2022-12-19 00:12:19 +0100 | <Inst> | i wonder if people are, erm, what's the term? |
2022-12-19 00:12:26 +0100 | <dibblego> | one of the biggest limitations of 6 is that you cannot use it as an odd number |
2022-12-19 00:12:34 +0100 | <Inst> | synaesthetic with numbers |
2022-12-19 00:12:35 +0100 | <Lycurgus> | all good things are 3, monads, meh |
2022-12-19 00:12:37 +0100 | <dibblego> | gotta be a better way |
2022-12-19 00:13:04 +0100 | <Inst> | well, you can, by stapling it into a multiplication with an odd number, no? |
2022-12-19 00:13:27 +0100 | <dibblego> | yeah that's the 6 hack |
2022-12-19 00:14:04 +0100 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:6111:8f0f:4f2:4e8d) (Remote host closed the connection) |
2022-12-19 00:14:56 +0100 | <geekosaur> | are we recapitulating that argument the other day which ended with "all primes are odd except 2, which makes it the oddest prime"? |
2022-12-19 00:15:10 +0100 | <dibblego> | haha I missed that |
2022-12-19 00:16:01 +0100 | <Inst> | the sad thing is, the many of the useful properties associated with the number 9 revolve around it being the largest single-digit number in base 10 |
2022-12-19 00:16:16 +0100 | LemanR | (~LemanR@2607:fb90:54b0:6e01:9403:ba62:4ea3:9eb9) |
2022-12-19 00:16:27 +0100 | perrierjouet | (~perrier-j@modemcable048.127-56-74.mc.videotron.ca) |
2022-12-19 00:17:32 +0100 | <Inst> | btw, since people seem to be active |
2022-12-19 00:17:38 +0100 | <Inst> | if i have code embedded into a closure |
2022-12-19 00:17:51 +0100 | <Inst> | or rather, a definition within a definition as with where or let |
2022-12-19 00:17:58 +0100 | <Inst> | there is no way to access the code, right? |
2022-12-19 00:18:11 +0100 | <Inst> | since I tend to stuff crap into nested definitions these days |
2022-12-19 00:20:46 +0100 | xacktm | (~xacktm@user/xacktm) |
2022-12-19 00:20:48 +0100 | <dsal> | You're being a bit loose with terminology. What do you mean "to access the code" ? |
2022-12-19 00:21:46 +0100 | <Inst> | say, I have code nested within code to indicated organization |
2022-12-19 00:21:50 +0100 | Lycurgus | (~juan@user/Lycurgus) (Quit: Exeunt: personae.ai-integration.biz) |
2022-12-19 00:22:01 +0100 | <Inst> | or to present an abstract interface denying access to the internals |
2022-12-19 00:22:13 +0100 | <Inst> | how do I access the internals, then, for testing purposes? |
2022-12-19 00:22:27 +0100 | <glguy> | You don't |
2022-12-19 00:22:33 +0100 | <Inst> | a particularly egregious example would be the time I built a closure to prevent passing around a 33 mb Map around |
2022-12-19 00:22:45 +0100 | <Inst> | can't you do something with template Haskell to take it out? |
2022-12-19 00:22:49 +0100 | <glguy> | nope |
2022-12-19 00:23:46 +0100 | morb | (~morb@pool-72-80-94-112.nycmny.fios.verizon.net) |
2022-12-19 00:24:05 +0100 | <EvanR> | you can nest functions in a where clause that are then packed into a record that gets returned for poor man's OOP |
2022-12-19 00:24:48 +0100 | <EvanR> | if you don't actually want that but still want organization use modules |
2022-12-19 00:25:45 +0100 | oopzzozzo | (~Thunderbi@user/oopzzozzo) |
2022-12-19 00:27:02 +0100 | fserucas | (~fserucas@2001:818:e376:a400:fb92:70c1:dd88:c7d7) (Ping timeout: 246 seconds) |
2022-12-19 00:28:24 +0100 | Tuplanolla | (~Tuplanoll@91-159-68-152.elisa-laajakaista.fi) (Ping timeout: 260 seconds) |
2022-12-19 00:28:46 +0100 | <Inst> | yeah but closures, i.e, being able to refer to parameters given on higher level |
2022-12-19 00:29:05 +0100 | <dsal> | They can reach up, but you can't reach down. |
2022-12-19 00:29:18 +0100 | <Inst> | i was just wondering why no one has considered that because nesting etc, or at least sub-modules, enhances code organization and also hides APIs |
2022-12-19 00:29:36 +0100 | merijn | (~merijn@86-86-29-250.fixed.kpn.net) |
2022-12-19 00:29:59 +0100 | <Inst> | since it is a complaint with FP that there are too many functions, some of them are useful in a modularized state |
2022-12-19 00:30:08 +0100 | <Inst> | some of them are merely convenience to enhance readability |
2022-12-19 00:30:14 +0100 | <dsal> | Who's complained that there are too many functions? |
2022-12-19 00:30:28 +0100 | <Inst> | people coming into FP from IP / mainstream programming |
2022-12-19 00:31:18 +0100 | oopzzozzo | (~Thunderbi@user/oopzzozzo) (Quit: oopzzozzo) |
2022-12-19 00:31:23 +0100 | andreas303 | (andreas303@ip227.orange.bnc4free.com) |
2022-12-19 00:31:31 +0100 | oopzzozzo | (~Thunderbi@user/oopzzozzo) |
2022-12-19 00:31:39 +0100 | <dsal> | I guess I've not seen that one. Mostly in other languages I see too many things that could be functions, but aren't so you have to learn some different behavior. |
2022-12-19 00:32:25 +0100 | <Inst> | https://chrisdone.com/posts/haskell-lisp-philosophy-difference/ |
2022-12-19 00:32:28 +0100 | <Inst> | which he's retracted |
2022-12-19 00:34:12 +0100 | LemanR | (~LemanR@2607:fb90:54b0:6e01:9403:ba62:4ea3:9eb9) (Quit: Client closed) |
2022-12-19 00:35:10 +0100 | <EvanR> | I think mainstream programming doesn't have enough functions |
2022-12-19 00:35:14 +0100 | <Inst> | w/e, i'll get off venting about Haskell for a day |
2022-12-19 00:35:25 +0100 | <Inst> | okay, maybe not |
2022-12-19 00:35:27 +0100 | slack1256 | (~slack1256@186.11.29.60) |
2022-12-19 00:36:15 +0100 | <Inst> | there are two cons of a FP approach (or, for that matter, a Lisp-like minimum syntax) |
2022-12-19 00:36:22 +0100 | <Inst> | first, too many functions lying around that you have to learn and memorize |
2022-12-19 00:36:25 +0100 | <EvanR> | for example, elixir has a function that maps a Map but only bringing the key along. Nothing built in to like fmap |
2022-12-19 00:36:44 +0100 | LemanR | (~LemanR@2607:fb90:54b0:6e01:9403:ba62:4ea3:9eb9) |
2022-12-19 00:36:51 +0100 | <Inst> | no typeclasses in Elixir, right? |
2022-12-19 00:37:06 +0100 | <EvanR> | you don't have to learn any functions, you can paste the code from those functions everywhere they would be used |
2022-12-19 00:37:38 +0100 | <EvanR> | that that just works is another benefit of functional programming |
2022-12-19 00:37:38 +0100 | <Inst> | which is less convenient than reading stuff, and arguably makes for less readable code |
2022-12-19 00:37:41 +0100 | <Inst> | it creates a scalability issue |
2022-12-19 00:38:15 +0100 | <Inst> | you can implement a MSP / IP-type minimum API with definition nesting, or for that matter, modules, but my experiment with modular layout was that there were too many modules |
2022-12-19 00:38:38 +0100 | <Inst> | definition nesting creates the issue that subfunctions are hard to test |
2022-12-19 00:38:54 +0100 | <EvanR> | yeah so why would you do it |
2022-12-19 00:39:06 +0100 | kenaryn | (~aurele@89-88-44-27.abo.bbox.fr) (Quit: leaving) |
2022-12-19 00:39:07 +0100 | <EvanR> | that's a problem in every language that has inner functions |
2022-12-19 00:39:41 +0100 | <Inst> | organization, i.e, i don't want a given function to be exposed to the public namespace |
2022-12-19 00:39:51 +0100 | <Inst> | but the problem with not being exposed to the public namespace is, well, can't test |
2022-12-19 00:40:12 +0100 | <EvanR> | namespace management is something you do at the module level |
2022-12-19 00:40:20 +0100 | <EvanR> | not inside a function |
2022-12-19 00:40:42 +0100 | <EvanR> | export or not what you want exported, or not |
2022-12-19 00:41:12 +0100 | <Inst> | but with single-file modules, you end up with problems |
2022-12-19 00:41:18 +0100 | <Inst> | from a UI perspective |
2022-12-19 00:41:24 +0100 | <Inst> | having to switch screens, create more tabs, so on so forth |
2022-12-19 00:41:53 +0100 | <EvanR> | I use bookmarks to go between parts of the same file or different files, seems the same |
2022-12-19 00:42:01 +0100 | <Inst> | i guess for *nixers, you have grep, so not being able to ctrl f isn't that much of a deal |
2022-12-19 00:42:26 +0100 | <Inst> | also, afaik, multi-modules, while supported in OCaml, aren't much used there |
2022-12-19 00:42:56 +0100 | <Inst> | easiest way, tbh, might be to have a different export syntax |
2022-12-19 00:43:02 +0100 | <EvanR> | probably because they actually want to be organized xD |
2022-12-19 00:43:49 +0100 | <Inst> | to access let expressions and where clauses |
2022-12-19 00:44:13 +0100 | <dsal> | I don't think I understand the problem. I use Haskell mostly because I find it easier to understand and refactor code vs. other stuff I've used. |
2022-12-19 00:44:24 +0100 | <EvanR> | 100% |
2022-12-19 00:44:44 +0100 | Kaiepi | (~Kaiepi@108.175.84.104) (Ping timeout: 260 seconds) |
2022-12-19 00:44:47 +0100 | <Inst> | i guess, for the time being, i've evolved toward a style that's way too dependent on nested definitions |
2022-12-19 00:45:04 +0100 | <EvanR> | yeah style takes time to figure out |
2022-12-19 00:45:07 +0100 | <Inst> | which is one way to express code organization, and i've stated the drawbacks of other ways to do so |
2022-12-19 00:45:26 +0100 | <Inst> | still, it's funny making 100 line functions in Haskell |
2022-12-19 00:45:37 +0100 | <EvanR> | that sounds awful |
2022-12-19 00:45:38 +0100 | <dsal> | It's not clear what it would even mean to "access a where" clause. My where clauses often close on values other where clauses defined from each other and params. In order to access one, you'd have to push a ton of state down. |
2022-12-19 00:45:53 +0100 | wroathe | (~wroathe@207-153-38-140.fttp.usinternet.com) |
2022-12-19 00:45:53 +0100 | wroathe | (~wroathe@207-153-38-140.fttp.usinternet.com) (Changing host) |
2022-12-19 00:45:53 +0100 | wroathe | (~wroathe@user/wroathe) |
2022-12-19 00:45:53 +0100 | morb | (~morb@pool-72-80-94-112.nycmny.fios.verizon.net) (Remote host closed the connection) |
2022-12-19 00:46:03 +0100 | <EvanR> | maybe they want dynamic scoping xD |
2022-12-19 00:46:05 +0100 | <Inst> | dsal: the main drawback of abusing nesting is weak testing |
2022-12-19 00:46:10 +0100 | <Inst> | what is dynamic scoping? |
2022-12-19 00:46:30 +0100 | <EvanR> | it's the opposite of lexical scoping |
2022-12-19 00:46:32 +0100 | <dsal> | We've got things nearly that long in some work code, but that's because people mix in all kinds of tracing and logging and stuff. |
2022-12-19 00:46:47 +0100 | <EvanR> | i.e. impossible to understand |
2022-12-19 00:47:12 +0100 | <dsal> | Inst: One of the schools of testing argues that you should only test the API you present. |
2022-12-19 00:47:13 +0100 | <Inst> | this would be an example |
2022-12-19 00:47:14 +0100 | <Inst> | https://github.com/liamzee/Dicewarist/blob/master/app/Dicewarist.hs |
2022-12-19 00:47:47 +0100 | <geekosaur> | lexical scoping means you can access bindings you are nested within. dynamic scoping means you can access bindings you were called from |
2022-12-19 00:47:50 +0100 | fizbin | (~fizbin@user/fizbin) |
2022-12-19 00:48:28 +0100 | <geekosaur> | lexical scoping is therefore clean and easy to figure out, whereas dynamic scoping could lead to nasty surprises because it's all controlled by your caller(s) |
2022-12-19 00:48:34 +0100 | <EvanR> | imagine if you could "access" equations in a where clause, but the free variables suddenly point somewhere else xD |
2022-12-19 00:48:49 +0100 | <EvanR> | very "handy" |
2022-12-19 00:48:50 +0100 | <dsal> | I like that it imports `OK (OK)` |
2022-12-19 00:48:50 +0100 | <Inst> | the idea is that you're not actually supposed to program with it |
2022-12-19 00:50:13 +0100 | <dsal> | Inst: Is there something in here you're wanting to fix? |
2022-12-19 00:50:34 +0100 | <dsal> | My general approach is to write the tests I think I need and then look at a coverage report. |
2022-12-19 00:51:12 +0100 | Kaiepi | (~Kaiepi@108.175.84.104) |
2022-12-19 00:51:32 +0100 | <Inst> | i mean wouldn't it be standard Haskell style to take out some of the where clausing? |
2022-12-19 00:51:56 +0100 | <dsal> | For what reason? |
2022-12-19 00:52:16 +0100 | <Inst> | because the where clausing isn't necessary |
2022-12-19 00:52:19 +0100 | <Inst> | it improves readability |
2022-12-19 00:52:33 +0100 | <dsal> | I find this super readable, so I need you to walk me a little bit. |
2022-12-19 00:52:55 +0100 | <dsal> | "get rid of where clause" isn't helpful to me. Which ones? Why? |
2022-12-19 00:53:41 +0100 | <Inst> | well, at least, expose functions to testing |
2022-12-19 00:54:00 +0100 | <Inst> | this whole whereclausing thing, tbh, is a miracle |
2022-12-19 00:54:40 +0100 | <dsal> | It's super hard to understand where you're coming from. I don't like naming things because naming things is hard, but why is naming things inherently a problem? |
2022-12-19 00:56:42 +0100 | <Inst> | that's more like an aside, i.e, where clausing in Haskell is a key advantage of haskell code over other languages code |
2022-12-19 00:56:57 +0100 | <Inst> | but it has the drawback that stuff defined within where clauses is not accessible to testing, but that's about it |
2022-12-19 00:57:21 +0100 | <Inst> | i guess in another language, wherein larger and less modularized functions is a norm, there's no real trade-off, so the idea wouldn't be apparent |
2022-12-19 00:57:27 +0100 | <Inst> | because you can't modularize in this way in other languages |
2022-12-19 00:57:36 +0100 | <dsal> | "where clausing" sounds really bizarre. nobody says that. Just say "naming things" |
2022-12-19 00:57:37 +0100 | <Inst> | it's inconvenient to do so |
2022-12-19 00:57:54 +0100 | <dsal> | You can name things in most languages. |
2022-12-19 00:57:56 +0100 | <Inst> | where makes it more specific to the where syntactical sugar |
2022-12-19 00:58:09 +0100 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:6111:8f0f:4f2:4e8d) |
2022-12-19 00:58:37 +0100 | <Inst> | w/e, i don't want to cause frustration, and it's getting late |
2022-12-19 00:58:41 +0100 | <Inst> | thanks for humoring me |
2022-12-19 00:58:53 +0100 | crazazy`` | (~user@130.89.171.62) (Ping timeout: 268 seconds) |
2022-12-19 00:58:55 +0100 | <dsal> | Heh. Sure. That particular example can be written in almost any language. |
2022-12-19 01:00:26 +0100 | j4cc3b | (~j4cc3b@pool-74-105-2-138.nwrknj.fios.verizon.net) |
2022-12-19 01:03:45 +0100 | merijn | (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 260 seconds) |
2022-12-19 01:04:26 +0100 | <dsal> | I pick up a lot of code that just does everything at the top level and you have to spend time trying to draw a useful dependency tree to figure out what actually matters. If `addAnotherDice` only needs to be used in a tiny scope, then putting it at the toplevel just muddies things up. Testing the thing you're providing would help, but `addAnotherDice` needs to be tried in ghci once and then given a better name. |
2022-12-19 01:04:59 +0100 | <dsal> | But this thing being in IO means it's pretty hard to write a test because the IO stuff is coupled with how it's generated. I'd split it that way for testing. |
2022-12-19 01:06:18 +0100 | rnat | (uid73555@id-73555.lymington.irccloud.com) |
2022-12-19 01:08:48 +0100 | wroathe | (~wroathe@user/wroathe) (Quit: Lost terminal) |
2022-12-19 01:10:20 +0100 | wroathe | (~wroathe@207-153-38-140.fttp.usinternet.com) |
2022-12-19 01:10:20 +0100 | wroathe | (~wroathe@207-153-38-140.fttp.usinternet.com) (Changing host) |
2022-12-19 01:10:20 +0100 | wroathe | (~wroathe@user/wroathe) |
2022-12-19 01:10:24 +0100 | LemanR | (~LemanR@2607:fb90:54b0:6e01:9403:ba62:4ea3:9eb9) (Quit: Client closed) |
2022-12-19 01:11:13 +0100 | <Inst> | i'm wondering if i have the only diceware software in Haskell |
2022-12-19 01:11:56 +0100 | __monty__ | (~toonn@user/toonn) (Quit: leaving) |
2022-12-19 01:13:13 +0100 | <Inst> | nope |
2022-12-19 01:13:13 +0100 | <Inst> | https://hackage.haskell.org/package/alea |
2022-12-19 01:14:38 +0100 | <Inst> | Haskell diceware actually seems pretty popular as a newbie project |
2022-12-19 01:14:58 +0100 | <dsal> | I don't know what diceware is. But if the above one is yours, then the main thing you need to do is separate the IO parts from the functional parts. It sounds like you want to test the functions, but you've combined the IO and the non-IO stuff. |
2022-12-19 01:16:45 +0100 | <Inst> | it's not |
2022-12-19 01:16:53 +0100 | <Inst> | you mean the liamzee github? |
2022-12-19 01:17:08 +0100 | <Inst> | that is mine, the packages aren't |
2022-12-19 01:17:15 +0100 | <Inst> | erm, the hackage etc aren't |
2022-12-19 01:17:31 +0100 | j4cc3b- | (~jeffreybe@pool-74-105-2-138.nwrknj.fios.verizon.net) |
2022-12-19 01:20:09 +0100 | <dsal> | RIght, so `process :: ReaderT Stores IO ()` should be `process :: Stores -> Stores` (like `processInner`). The outer action is just calling that with a store and then writing the result. The coupling is unnecessary and makes testing hard. |
2022-12-19 01:20:11 +0100 | <EvanR> | ideally your haskell program is a thin crunchy IO shell around juicy purely functional interior, says Cale |
2022-12-19 01:20:35 +0100 | slack1256 | goes for taco bell |
2022-12-19 01:20:50 +0100 | <dsal> | Monads are tacos. |
2022-12-19 01:23:28 +0100 | <EvanR> | To use haskell you first need a bit of calzonegory theory |
2022-12-19 01:24:59 +0100 | <Inst> | yeah, i've had stuff like that, but dicewarist tbh is mostly IO code, which is unfortunate |
2022-12-19 01:25:26 +0100 | <Inst> | the ReaderT is pretty arbitrary, tbh |
2022-12-19 01:26:08 +0100 | <Inst> | it wouldn't hurt that much given the design of the program, were ReaderT removed |
2022-12-19 01:26:54 +0100 | <Inst> | what I did was to move ProcessInner to top-level, rename it |
2022-12-19 01:26:59 +0100 | <Inst> | because that's the real pure part of the function |
2022-12-19 01:27:55 +0100 | shailangsa | (~shailangs@host217-39-45-196.range217-39.btcentralplus.com) |
2022-12-19 01:27:58 +0100 | <slack1256> | Is HLS usable to work *on* GHC? |
2022-12-19 01:28:09 +0100 | <Inst> | what does that question mean? |
2022-12-19 01:28:19 +0100 | <dsal> | "Does HLS scale?" |
2022-12-19 01:28:43 +0100 | <slack1256> | The build system in GHC is shake (well still autoconf). |
2022-12-19 01:28:43 +0100 | <dsal> | I think some people use it at work. Our codebase is kind of big. |
2022-12-19 01:28:46 +0100 | <Inst> | oh, you mean, does HLS work when you've git-cloned the GHC repo? |
2022-12-19 01:29:05 +0100 | oopzzozzo | (~Thunderbi@user/oopzzozzo) (Quit: oopzzozzo) |
2022-12-19 01:29:11 +0100 | <slack1256> | Yeah, work *on* GHC. |
2022-12-19 01:33:54 +0100 | <geekosaur> | people do use HLS to work on GHC but it requires quite a lot of memory. I think there's some information in the ghc dev wiki |
2022-12-19 01:34:17 +0100 | <geekosaur> | then again, compiling ghc also requires quite a lot of memory, so if you can do one you can probably do the other |
2022-12-19 01:35:21 +0100 | wroathe | (~wroathe@user/wroathe) (Quit: Lost terminal) |
2022-12-19 01:38:37 +0100 | wroathe | (~wroathe@207-153-38-140.fttp.usinternet.com) |
2022-12-19 01:38:37 +0100 | wroathe | (~wroathe@207-153-38-140.fttp.usinternet.com) (Changing host) |
2022-12-19 01:38:37 +0100 | wroathe | (~wroathe@user/wroathe) |
2022-12-19 01:39:09 +0100 | ft | (~ft@p4fc2a257.dip0.t-ipconnect.de) (Remote host closed the connection) |
2022-12-19 01:39:29 +0100 | <slack1256> | Oh right, the wiki. I was just reading the docs on the repo. |
2022-12-19 01:40:02 +0100 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:6111:8f0f:4f2:4e8d) (Remote host closed the connection) |
2022-12-19 01:40:39 +0100 | eggplantade | (~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net) |
2022-12-19 01:40:54 +0100 | ft | (~ft@p4fc2a257.dip0.t-ipconnect.de) |
2022-12-19 01:41:11 +0100 | <geekosaur> | you might also ask in #ghc since there's a decent chance someone there can give you pointers as to how to set up for HLS |
2022-12-19 01:45:10 +0100 | eggplantade | (~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
2022-12-19 01:47:46 +0100 | morb | (~morb@pool-72-80-94-112.nycmny.fios.verizon.net) |
2022-12-19 01:49:35 +0100 | acidjnk | (~acidjnk@p200300d6e7137a394052686d931fefc2.dip0.t-ipconnect.de) (Ping timeout: 260 seconds) |
2022-12-19 01:55:32 +0100 | morb | (~morb@pool-72-80-94-112.nycmny.fios.verizon.net) (Remote host closed the connection) |
2022-12-19 01:57:14 +0100 | finsternis | (~X@23.226.237.192) (Read error: Connection reset by peer) |
2022-12-19 02:00:14 +0100 | merijn | (~merijn@86-86-29-250.fixed.kpn.net) |
2022-12-19 02:06:46 +0100 | [_] | (~itchyjunk@user/itchyjunk/x-7353470) |
2022-12-19 02:06:59 +0100 | [itchyjunk] | (~itchyjunk@user/itchyjunk/x-7353470) (Ping timeout: 255 seconds) |
2022-12-19 02:10:41 +0100 | albet70 | (~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection) |
2022-12-19 02:12:23 +0100 | slack1256 | (~slack1256@186.11.29.60) (Ping timeout: 255 seconds) |
2022-12-19 02:16:49 +0100 | albet70 | (~xxx@2400:8902::f03c:92ff:fe60:98d8) |
2022-12-19 02:16:49 +0100 | <albet70> | unit73e , you're right, I just tested it |
2022-12-19 02:18:58 +0100 | <Inst> | why is it that containers generally contain a null value? |
2022-12-19 02:19:02 +0100 | <Inst> | oh wait, mempty identity |
2022-12-19 02:19:04 +0100 | <Inst> | ;_; |
2022-12-19 02:20:06 +0100 | bontaq | (~user@ool-45779fe5.dyn.optonline.net) (Ping timeout: 252 seconds) |
2022-12-19 02:27:24 +0100 | gurkenglas | (~gurkengla@p548ac72e.dip0.t-ipconnect.de) (Ping timeout: 272 seconds) |
2022-12-19 02:29:18 +0100 | xff0x | (~xff0x@ai071162.d.east.v6connect.net) (Ping timeout: 272 seconds) |
2022-12-19 02:30:02 +0100 | bitdex_ | (~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 255 seconds) |
2022-12-19 02:32:46 +0100 | bitdex_ | (~bitdex@gateway/tor-sasl/bitdex) |
2022-12-19 02:34:57 +0100 | __xor | _xor |
2022-12-19 02:35:00 +0100 | merijn | (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 272 seconds) |
2022-12-19 02:35:14 +0100 | Topsi | (~Topsi@dialin-80-228-141-093.ewe-ip-backbone.de) (Read error: Connection reset by peer) |
2022-12-19 02:36:26 +0100 | quazimodo | (~quazimodo@122-199-39-221.ip4.superloop.com) |
2022-12-19 02:36:27 +0100 | <quazimodo> | hi all |
2022-12-19 02:36:56 +0100 | <quazimodo> | I am a perenial 'dont get it' guy and i remember that the last time i tried to internalize how monads work I saw that 'return' was something to define |
2022-12-19 02:37:14 +0100 | <quazimodo> | recently watched a video to refresh & saw that an instance of monad should be an instance of applicative |
2022-12-19 02:37:21 +0100 | <quazimodo> | and the dude didnt' define 'return' |
2022-12-19 02:37:37 +0100 | <quazimodo> | has there been a change to the interface since I last came across this? |
2022-12-19 02:45:41 +0100 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:6111:8f0f:4f2:4e8d) |
2022-12-19 02:47:41 +0100 | <hpc> | it now defaults to pure |
2022-12-19 02:47:42 +0100 | <hpc> | :t pure |
2022-12-19 02:47:43 +0100 | <lambdabot> | Applicative f => a -> f a |
2022-12-19 02:48:09 +0100 | <hpc> | since you need that Applicative instance anyway and the two are always the same for lawful instances |
2022-12-19 02:49:28 +0100 | <dsal> | quazimodo: Many of us never write `return` in any code anymore. It's a weird, confusing term. |
2022-12-19 02:50:05 +0100 | <EvanR> | I never found it weird or confusing, but I think there were less monad tutorials back then |
2022-12-19 02:50:12 +0100 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:6111:8f0f:4f2:4e8d) (Ping timeout: 255 seconds) |
2022-12-19 02:51:19 +0100 | <dsal> | People with experience in other languages often find return confusing. |
2022-12-19 02:51:40 +0100 | <dsal> | It often looks like it does a very different thing from what it actually does. |
2022-12-19 02:51:41 +0100 | eggplantade | (~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net) |
2022-12-19 03:08:38 +0100 | rnat | (uid73555@id-73555.lymington.irccloud.com) (Quit: Connection closed for inactivity) |
2022-12-19 03:14:19 +0100 | xff0x | (~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp) |
2022-12-19 03:17:21 +0100 | <quazimodo> | ok so sounds like the language spec may have changed a little since I last went over it |
2022-12-19 03:17:28 +0100 | <quazimodo> | because it did look like applicative does the jobp |
2022-12-19 03:20:48 +0100 | <quazimodo> | i guess the other question that I have is; when is `pure` used? |
2022-12-19 03:21:36 +0100 | razetime | (~quassel@49.207.230.181) |
2022-12-19 03:21:38 +0100 | <quazimodo> | i see that you define it for a given applicative but i haven't really seen anyone using it, then i can only imagine that other people who write libs that rely on some applicative ?may? need `pure` to do their job, thus we need to write it |
2022-12-19 03:21:43 +0100 | <quazimodo> | i just havent seen it being used much |
2022-12-19 03:22:41 +0100 | <EvanR> | after about 1 moment of inquiry about `return' it should be clear that it does not in fact return, then people move on with their haskell |
2022-12-19 03:22:53 +0100 | morb | (~morb@pool-72-80-94-112.nycmny.fios.verizon.net) |
2022-12-19 03:24:03 +0100 | <EvanR> | pure is used in Applicative style code when nothing else will do and what pure does would be more code |
2022-12-19 03:25:05 +0100 | <EvanR> | or when you're in polymorphic applicative code and you couldn't expand it if you wanted to |
2022-12-19 03:25:42 +0100 | <EvanR> | the <* and *> operators cut down on the need for pure many times |
2022-12-19 03:28:54 +0100 | <dsal> | > pure 5 :: Maybe Int |
2022-12-19 03:28:55 +0100 | <lambdabot> | Just 5 |
2022-12-19 03:29:21 +0100 | <EvanR> | look, it saves on holding shift key xD |
2022-12-19 03:30:50 +0100 | <quazimodo> | ok so it's something more technical than I can understand atm |
2022-12-19 03:30:51 +0100 | <quazimodo> | cool |
2022-12-19 03:31:00 +0100 | <EvanR> | dsal used pure! |
2022-12-19 03:31:04 +0100 | <EvanR> | it wasn't very effective |
2022-12-19 03:31:05 +0100 | merijn | (~merijn@86-86-29-250.fixed.kpn.net) |
2022-12-19 03:31:46 +0100 | <EvanR> | quazimodo, have you used Applicative much? |
2022-12-19 03:32:13 +0100 | <dsal> | :t many |
2022-12-19 03:32:14 +0100 | <lambdabot> | Alternative f => f a -> f [a] |
2022-12-19 03:32:29 +0100 | <dsal> | Man, so close… |
2022-12-19 03:33:40 +0100 | beteigeuze | (~Thunderbi@bl14-81-220.dsl.telepac.pt) (Ping timeout: 268 seconds) |
2022-12-19 03:34:09 +0100 | danso | (~danso@danso.ca) (Quit: ZNC - https://znc.in) |
2022-12-19 03:35:41 +0100 | dcoutts_ | (~duncan@host86-151-44-212.range86-151.btcentralplus.com) |
2022-12-19 03:35:48 +0100 | merijn | (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 272 seconds) |
2022-12-19 03:36:34 +0100 | <quazimodo> | EvanR: i haven't used haskell much :) |
2022-12-19 03:36:42 +0100 | danso | (~danso@danso.ca) |
2022-12-19 03:36:58 +0100 | <quazimodo> | i probabyl have used it without really 'getting it' in the past |
2022-12-19 03:38:34 +0100 | dcoutts | (~duncan@host86-151-44-212.range86-151.btcentralplus.com) (Ping timeout: 260 seconds) |
2022-12-19 03:39:32 +0100 | <EvanR> | the central idiom for Applicative f code is like, g <$> action1 <*> action2 <*> action3 (<*> and so on) |
2022-12-19 03:40:08 +0100 | <EvanR> | where g takes the results of each action as arguments |
2022-12-19 03:40:45 +0100 | <EvanR> | if you want to just use a value with no effect as one of the actions, you'll need pure |
2022-12-19 03:43:13 +0100 | <quazimodo> | by that do you mean if I want to do g <$> action1 <*> action2 <*> pure val <*> actio3 (<*> and so on)? |
2022-12-19 03:43:29 +0100 | <quazimodo> | I didn't understand why it was called 'pure' until you showed/said that |
2022-12-19 03:43:51 +0100 | <quazimodo> | but i can't understand why i'd use it in a chain like that in place of an action, |
2022-12-19 03:46:16 +0100 | <quazimodo> | yeah i clearly don't understand & need to experiment, what I just wrote is nonesense |
2022-12-19 03:47:16 +0100 | <quazimodo> | maybe it's meant to be like "a value" <$> pure <*> action1 <*> action2 ...etc? |
2022-12-19 03:47:21 +0100 | <quazimodo> | that makes sense to me, i think |
2022-12-19 03:49:28 +0100 | <EvanR> | no you're right |
2022-12-19 03:49:36 +0100 | <EvanR> | the first time |
2022-12-19 03:50:13 +0100 | <EvanR> | the next step would be to look at the types and see what that idiom is even well typed |
2022-12-19 03:50:14 +0100 | <quazimodo> | in that case would it be more like pure somePureFunction |
2022-12-19 03:50:28 +0100 | <quazimodo> | as in, use this pure function in place of an applicative funciton |
2022-12-19 03:50:47 +0100 | <EvanR> | actions are not necessarily functions |
2022-12-19 03:50:51 +0100 | <quazimodo> | if i understood the applicative <*> wants an f(a->b) |
2022-12-19 03:51:16 +0100 | <EvanR> | > (+) <$> Just 3 <*> Just 9 |
2022-12-19 03:51:17 +0100 | <quazimodo> | (also i dont fully understand why we wouldn't use fmap, in that case) |
2022-12-19 03:51:18 +0100 | <lambdabot> | Just 12 |
2022-12-19 03:51:30 +0100 | <EvanR> | (<$> is fmap) |
2022-12-19 03:51:30 +0100 | <quazimodo> | oh, yeah that's true |
2022-12-19 03:51:41 +0100 | <quazimodo> | holy hell haskell is weird hey |
2022-12-19 03:51:44 +0100 | <quazimodo> | fun stuff |
2022-12-19 03:52:01 +0100 | <EvanR> | <$> is idiomatic there but is the same thing as |
2022-12-19 03:52:09 +0100 | <quazimodo> | Yeah I think i got it |
2022-12-19 03:52:10 +0100 | <EvanR> | > pure (+) <*> Just 3 <*> Just 9 |
2022-12-19 03:52:11 +0100 | <lambdabot> | Just 12 |
2022-12-19 03:52:37 +0100 | <quazimodo> | got it |
2022-12-19 03:52:55 +0100 | <EvanR> | this pattern really cuts down on certain kinds of code |
2022-12-19 03:53:26 +0100 | <quazimodo> | the truth of it is that I've been bitten by c# lately, the nominal typing makes it absolutely necessary to do interface based programming & that makes dependency injection even more important |
2022-12-19 03:53:44 +0100 | <quazimodo> | and that got me thinking how the hell do I do a bit of DI, in a nice automagic way, in something like typescript |
2022-12-19 03:53:49 +0100 | <EvanR> | I only understood maybe 1/10th of that |
2022-12-19 03:53:56 +0100 | <quazimodo> | which brought me to haskel & reader/readerT |
2022-12-19 03:54:13 +0100 | <quazimodo> | EvanR: you're happier this way |
2022-12-19 03:54:30 +0100 | <EvanR> | 9/10 times dependency injection takes the form of "just pass a parameter into a function" in haskell |
2022-12-19 03:54:35 +0100 | <quazimodo> | the more OOP i end up having to do the more i miss lispy, functiony shenanigans |
2022-12-19 03:55:00 +0100 | <EvanR> | s/param/argument |
2022-12-19 03:55:09 +0100 | <quazimodo> | EvanR: i can't speak to haskell but in other languages it can become very easy to engage in argument drilling |
2022-12-19 03:55:23 +0100 | <quazimodo> | parents need to know about child dependencies etc |
2022-12-19 03:55:43 +0100 | <EvanR> | sounds like parent child is the wrong relationship then xD |
2022-12-19 03:55:49 +0100 | <quazimodo> | yeah |
2022-12-19 03:56:08 +0100 | <EvanR> | suspicious neighbors pattern |
2022-12-19 03:56:46 +0100 | <quazimodo> | in c# they invert the situation a bit, something crawls the argument dependency tree and resolves the interfaces to concrete implementations, that then may have dependencies (expressed as interfaces) and so it fetches a concrete implementation of that & so on, then constructs everything |
2022-12-19 03:56:51 +0100 | <quazimodo> | it's super ugly |
2022-12-19 03:57:30 +0100 | <quazimodo> | that way the parent doesn't need to know what the child needs, it leaves that to the dependency injection framework |
2022-12-19 03:57:55 +0100 | <quazimodo> | it's a little all or nothing & harder to do with languages that dont leave runtime metadata somewhere that helps the dynamic injector to know what to inject |
2022-12-19 03:58:13 +0100 | <quazimodo> | it's not a bad pattern but it's some sort of implicit argument passing |
2022-12-19 03:58:22 +0100 | <quazimodo> | and I don't mind it but i'd love to not have to do it the way c# does it |
2022-12-19 03:58:35 +0100 | <EvanR> | yeah I've never needed anything like that in haskell |
2022-12-19 03:58:36 +0100 | <quazimodo> | i was super curious how haskell might do it though |
2022-12-19 03:58:57 +0100 | <quazimodo> | EvanR: suppose you have a function that takes an http request & puts stuff in database using some client |
2022-12-19 03:58:59 +0100 | <EvanR> | if you have a subsystem that needs driver X, just take it as an argument and perhaps close over it |
2022-12-19 03:59:23 +0100 | <EvanR> | the driver can take the form of a value, a record of functions or IO actions, or even a single IO action |
2022-12-19 03:59:31 +0100 | <quazimodo> | this in a language like javascript would be a function that imports some modules/functions & uses them till the data gets into the db |
2022-12-19 03:59:37 +0100 | <EvanR> | where it comes from is not important to the subsystem |
2022-12-19 04:00:20 +0100 | <EvanR> | I'm sure you could do the same in C#, where the driver takes the form of an object |
2022-12-19 04:00:45 +0100 | <quazimodo> | yeah so architecture in haskell obviously changes the situation. In my career i've only had to change dependencies on the fly a handful of times - the dependency injection pattern mostly just helped us to set mock classes/instancses during testing |
2022-12-19 04:01:02 +0100 | <quazimodo> | so the DI pattern mostly seems to be leveraged in testing |
2022-12-19 04:01:55 +0100 | <EvanR> | indeed taking the driver or resource as an argument opens up the possibility of testing with test drivers |
2022-12-19 04:01:55 +0100 | <quazimodo> | if i've understood you correctly, your example almost treats the call stack like a reactive pipeline that returns some object(s) that get passed into some 'drivers' that go off & do things in the world |
2022-12-19 04:02:15 +0100 | <EvanR> | well there's no call stack... |
2022-12-19 04:02:23 +0100 | <EvanR> | but I'm not sure if it's relevant |
2022-12-19 04:02:36 +0100 | <quazimodo> | a calls b calls c etc etc and some final value is returend right |
2022-12-19 04:02:48 +0100 | <EvanR> | no... |
2022-12-19 04:02:49 +0100 | <quazimodo> | does that fina lthing get shovelled into the driver |
2022-12-19 04:02:55 +0100 | <quazimodo> | ah ok then i've misunderstood you |
2022-12-19 04:03:46 +0100 | king_gs | (~Thunderbi@2806:103e:29:cdd2:b2dd:cddc:5884:d05c) |
2022-12-19 04:03:53 +0100 | j4cc3b | (~j4cc3b@pool-74-105-2-138.nwrknj.fios.verizon.net) (Ping timeout: 260 seconds) |
2022-12-19 04:03:58 +0100 | <quazimodo> | i'll go eat, my wife is dangerously close to revoking certain privileges if i don't spend some meaningful time with her |
2022-12-19 04:04:20 +0100 | <EvanR> | like, if you have an http request handler which besides responding to a request (which might even be just a simple function), but needs database access on the side, then you could express that as a Connection -> Request -> IO Response. (just an example) |
2022-12-19 04:04:22 +0100 | <quazimodo> | be back soon, also really appreciat your time EvanR |
2022-12-19 04:05:18 +0100 | <EvanR> | the connection could be provided anew each time or partially applied and now you have this Request -> IO Response thing that magically can use the database |
2022-12-19 04:05:35 +0100 | j4cc3b- | (~jeffreybe@pool-74-105-2-138.nwrknj.fios.verizon.net) (Ping timeout: 256 seconds) |
2022-12-19 04:05:55 +0100 | <EvanR> | until the connection explodes and that's another story |
2022-12-19 04:10:03 +0100 | jao | (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) (Ping timeout: 268 seconds) |
2022-12-19 04:15:34 +0100 | bitmapper | (uid464869@id-464869.lymington.irccloud.com) (Quit: Connection closed for inactivity) |
2022-12-19 04:16:50 +0100 | Kaiepi | (~Kaiepi@108.175.84.104) (Ping timeout: 268 seconds) |
2022-12-19 04:23:48 +0100 | finn_elija | (~finn_elij@user/finn-elija/x-0085643) |
2022-12-19 04:23:48 +0100 | FinnElija | (~finn_elij@user/finn-elija/x-0085643) (Killed (NickServ (Forcing logout FinnElija -> finn_elija))) |
2022-12-19 04:23:48 +0100 | finn_elija | FinnElija |
2022-12-19 04:26:21 +0100 | <quazimodo> | EvanR: partial application is a reasonable way to go as part of the handling from the top i guess |
2022-12-19 04:26:52 +0100 | <EvanR> | that's if the resource can reasonably be provided once and closed over |
2022-12-19 04:26:53 +0100 | <quazimodo> | it's unclear to me how reader & readerT could be applied to this issue of depenencies |
2022-12-19 04:27:02 +0100 | <quazimodo> | yeah |
2022-12-19 04:27:06 +0100 | <quazimodo> | makes sense |
2022-12-19 04:27:17 +0100 | <EvanR> | Reader is basically a function argument |
2022-12-19 04:27:53 +0100 | <EvanR> | it's great if there's only ever 1 such function argument ever |
2022-12-19 04:28:08 +0100 | <quazimodo> | ever? |
2022-12-19 04:28:11 +0100 | <EvanR> | even then, the monad style might be overkill for what it does |
2022-12-19 04:28:13 +0100 | <quazimodo> | so it can't be changed ever |
2022-12-19 04:28:22 +0100 | <EvanR> | you can always begin a new Reader context |
2022-12-19 04:28:25 +0100 | <quazimodo> | right |
2022-12-19 04:28:57 +0100 | <quazimodo> | does 'pure' perform a 'lift' operation? it seems like it does |
2022-12-19 04:29:26 +0100 | <EvanR> | if fmap is liftA1, and the <$> <*> pattern above is liftA2, you could say pure is liftA0 xD |
2022-12-19 04:29:53 +0100 | <EvanR> | this has not much to do with lift from transformers |
2022-12-19 04:30:51 +0100 | <quazimodo> | ah ok so that's why pure isn't called lift |
2022-12-19 04:31:44 +0100 | td_ | (~td@83.135.9.47) (Ping timeout: 252 seconds) |
2022-12-19 04:32:05 +0100 | merijn | (~merijn@86-86-29-250.fixed.kpn.net) |
2022-12-19 04:33:30 +0100 | td_ | (~td@83.135.9.40) |
2022-12-19 04:34:13 +0100 | machinedgod | (~machinedg@d198-53-218-113.abhsia.telus.net) (Ping timeout: 260 seconds) |
2022-12-19 04:37:49 +0100 | Unicorn_Princess | (~Unicorn_P@user/Unicorn-Princess/x-3540542) (Quit: Leaving) |
2022-12-19 04:41:23 +0100 | [_] | (~itchyjunk@user/itchyjunk/x-7353470) (Remote host closed the connection) |
2022-12-19 04:44:45 +0100 | king_gs | (~Thunderbi@2806:103e:29:cdd2:b2dd:cddc:5884:d05c) (Quit: king_gs) |
2022-12-19 04:47:47 +0100 | terrorjack | (~terrorjac@2a01:4f8:1c1e:509a::1) (Quit: The Lounge - https://thelounge.chat) |
2022-12-19 04:49:09 +0100 | terrorjack | (~terrorjac@2a01:4f8:1c1e:509a::1) |
2022-12-19 04:50:41 +0100 | talismanick | (~talismani@76.133.152.122) |
2022-12-19 04:58:18 +0100 | morb | (~morb@pool-72-80-94-112.nycmny.fios.verizon.net) (Remote host closed the connection) |
2022-12-19 05:00:41 +0100 | morb | (~morb@pool-72-80-94-112.nycmny.fios.verizon.net) |
2022-12-19 05:05:29 +0100 | merijn | (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 260 seconds) |
2022-12-19 05:11:04 +0100 | azimut | (~azimut@gateway/tor-sasl/azimut) |
2022-12-19 05:15:59 +0100 | morb | (~morb@pool-72-80-94-112.nycmny.fios.verizon.net) (Remote host closed the connection) |
2022-12-19 05:18:03 +0100 | machinedgod | (~machinedg@d198-53-218-113.abhsia.telus.net) |
2022-12-19 05:19:31 +0100 | Techcable | (~Techcable@user/Techcable) (Remote host closed the connection) |
2022-12-19 05:19:41 +0100 | <EvanR> | cabal complaint incoming |
2022-12-19 05:20:19 +0100 | <EvanR> | I naively typed ghc -O2 Main.hs for 17 days of AoC this year and things worked alright. You can see where this is going xD |
2022-12-19 05:20:39 +0100 | <EvanR> | import Control.DeepSeq |
2022-12-19 05:21:33 +0100 | <EvanR> | misread a type error as "deepseq not installed" |
2022-12-19 05:21:42 +0100 | <EvanR> | actually it was installed |
2022-12-19 05:22:04 +0100 | <EvanR> | cabal install --libs deepseq, it installed a second version of deepseq package |
2022-12-19 05:22:22 +0100 | <EvanR> | now it won't compile for a different reason xD |
2022-12-19 05:22:33 +0100 | <EvanR> | and I can't seem to undo it |
2022-12-19 05:23:30 +0100 | <glguy> | what does : ghc-pkg list deepseq show? |
2022-12-19 05:23:59 +0100 | <EvanR> | the original deepseq only |
2022-12-19 05:24:17 +0100 | <glguy> | what's the build error? |
2022-12-19 05:24:42 +0100 | <EvanR> | ambiguous module name Control.DeepSeq, it was found in multiple packages: deepseq-1.4.6.1 deepseq-1.4.8.0 |
2022-12-19 05:27:09 +0100 | <EvanR> | this error is appreciated but I have to wonder what to do about it |
2022-12-19 05:27:49 +0100 | <EvanR> | (and the complaint follow up is, why did cabal install even install a second version with no warning or anything) |
2022-12-19 05:28:19 +0100 | wroathe | (~wroathe@user/wroathe) (Quit: Lost terminal) |
2022-12-19 05:28:57 +0100 | <EvanR> | if the command will get you into an unrecoverable situation maybe it shouldn't continue |
2022-12-19 05:33:16 +0100 | eggplantade | (~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
2022-12-19 05:37:29 +0100 | <glguy> | presumably it installed the library because you specifically told it to |
2022-12-19 05:37:44 +0100 | Techcable | (~Techcable@user/Techcable) |
2022-12-19 05:37:49 +0100 | <EvanR> | yeah but I didn't specify a version |
2022-12-19 05:38:15 +0100 | <glguy> | Does this show two version? cabal exec ghc-pkg list |
2022-12-19 05:38:46 +0100 | <EvanR> | no cabal file here |
2022-12-19 05:40:44 +0100 | ddellacosta | (~ddellacos@143.244.47.88) (Ping timeout: 255 seconds) |
2022-12-19 05:41:08 +0100 | <EvanR> | running that in a real project shows only 1.4.6.1 just like bare ghc-pkg list |
2022-12-19 05:42:35 +0100 | <glguy> | I think it sets up some kind of extra environment in your ~/.cabal directory for --lib installed stuff |
2022-12-19 05:42:45 +0100 | <glguy> | I'm trying to search around to see what that was |
2022-12-19 05:43:41 +0100 | jrm | (~jrm@user/jrm) (Quit: ciao) |
2022-12-19 05:44:35 +0100 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:6111:8f0f:4f2:4e8d) |
2022-12-19 05:44:50 +0100 | <glguy> | EvanR: when you run ghci does it say it's loading from: /Users/emertens/.ghc/x86_64-darwin-9.4.3/environments/default or something like that? |
2022-12-19 05:45:06 +0100 | jrm | (~jrm@user/jrm) |
2022-12-19 05:45:59 +0100 | <EvanR> | yeah, and then a warning about missing libHSdeepseq-1.4.8.0 shared object which was probably in a directory in .cabal that I deleted |
2022-12-19 05:46:15 +0100 | <glguy> | if you edit that file deepseq is probably at the end of the file |
2022-12-19 05:46:20 +0100 | <glguy> | it'll have a hash after its name |
2022-12-19 05:46:29 +0100 | <glguy> | you can remove the line |
2022-12-19 05:46:58 +0100 | <EvanR> | I see it, in the middle somewhere |
2022-12-19 05:47:04 +0100 | <EvanR> | 1.4.6.1 was at the bottom curiously |
2022-12-19 05:47:42 +0100 | <EvanR> | that seems to have fixed it thanks! Now I will try to integrate what I learned |
2022-12-19 05:49:31 +0100 | <glguy> | EvanR: I haven't used these files (knowingly) before, but there's this: https://ghc.gitlab.haskell.org/ghc/doc/users_guide/packages.html#package-environments |
2022-12-19 05:49:57 +0100 | smol-hors | pony |
2022-12-19 05:50:08 +0100 | <EvanR> | right... right... |
2022-12-19 05:56:23 +0100 | iqubic | (~avi@2601:602:9502:c70:98f0:c0ba:f8c9:e2cc) |
2022-12-19 06:01:30 +0100 | merijn | (~merijn@86-86-29-250.fixed.kpn.net) |
2022-12-19 06:04:14 +0100 | bitdex_ | (~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 255 seconds) |
2022-12-19 06:06:58 +0100 | bitdex_ | (~bitdex@gateway/tor-sasl/bitdex) |
2022-12-19 06:20:09 +0100 | jero98772 | (~jero98772@2800:484:1d80:d8ce:efcc:cbb3:7f2a:6dff) (Remote host closed the connection) |
2022-12-19 06:22:29 +0100 | machinedgod | (~machinedg@d198-53-218-113.abhsia.telus.net) (Ping timeout: 260 seconds) |
2022-12-19 06:27:26 +0100 | raym | (~ray@user/raym) (Ping timeout: 256 seconds) |
2022-12-19 06:29:13 +0100 | raym | (~ray@user/raym) |
2022-12-19 06:34:56 +0100 | troydm | (~troydm@host-176-37-124-197.b025.la.net.ua) (Ping timeout: 252 seconds) |
2022-12-19 06:36:18 +0100 | <Inst> | this is probably really stupid, and thus not worth responding to |
2022-12-19 06:36:18 +0100 | merijn | (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 272 seconds) |
2022-12-19 06:36:27 +0100 | <Inst> | but has anyone ever tried to teach 5 languages at once or something? |
2022-12-19 06:41:21 +0100 | <EvanR> | HTML, XHTML, DHTML, XML, and HTML5 |
2022-12-19 06:42:07 +0100 | <Inst> | lol |
2022-12-19 06:42:19 +0100 | <Inst> | still, compared to learning haskell, it sort of feels like learning 5 languages at once |
2022-12-19 06:42:38 +0100 | <Inst> | since all imperative languages are more or less the same, just with effectively different sugar / small syntactical differences |
2022-12-19 06:42:53 +0100 | <Inst> | might as well try teaching 5 languages at once |
2022-12-19 06:43:51 +0100 | <Inst> | intro IP, with Python / C / C++... hmm, what other major IP languages are important to pick up? I can think of Java, but Java is wedded to OOP in a similar way than Haskell is wedded to FP |
2022-12-19 06:44:15 +0100 | <Inst> | i guess it'd probbaly go as well as trying to teach romance languages together, which is to say, not at all |
2022-12-19 06:44:21 +0100 | <c_wraith> | lots of schools have a course called "programming languages" that's a survery of several languages they don't normally use. Would that be similar to your thoughts? |
2022-12-19 06:44:44 +0100 | <Inst> | no, but survey of rarely-used paradigms (sorry FP!) |
2022-12-19 06:44:51 +0100 | <Inst> | is not concurrent |
2022-12-19 06:44:58 +0100 | <Inst> | if you're stuck wasting weeks on teaching someone the concept of assignment |
2022-12-19 06:45:06 +0100 | <Inst> | why not teach them how to do assignment in 5 different languages at once? |
2022-12-19 06:45:50 +0100 | <Inst> | Python / C / C++ / JS, oh what the hell, add Java to it |
2022-12-19 06:46:15 +0100 | <Inst> | the Haskell-take on it is that it's implicitly teaching the same exact language in different flavors, so what's the big deal? |
2022-12-19 06:47:38 +0100 | <Inst> | I'm trying to do Python exercises and translate them to Julia at the same time, hence the origin of the idea |
2022-12-19 06:51:29 +0100 | <Inst> | but I guess I'm serious about it, like, teaching 5 languages at once helps people get to the notion that you have to learn a lot of languages, but fortunately, for the most part, they're just syntax swaps of one another |
2022-12-19 07:11:01 +0100 | <EvanR> | screw the course of programming languages, where's the course of all the build systems |
2022-12-19 07:11:20 +0100 | <EvanR> | at least 1 for each language |
2022-12-19 07:13:45 +0100 | <DigitalKiwi> | my favorite programming course on coursera teaches three lol |
2022-12-19 07:15:38 +0100 | <DigitalKiwi> | https://www.coursera.org/learn/programming-languages/home/info |
2022-12-19 07:16:17 +0100 | <DigitalKiwi> | sml scheme and ruby |
2022-12-19 07:16:45 +0100 | <DigitalKiwi> | err racket w/e |
2022-12-19 07:17:17 +0100 | <DigitalKiwi> | apparenly i type with a lisp |
2022-12-19 07:19:30 +0100 | <DigitalKiwi> | lisp programs can only be talked about but never read |
2022-12-19 07:19:34 +0100 | <DigitalKiwi> | it's untyped |
2022-12-19 07:19:48 +0100 | <Inst> | tbh i'm really enthusiastic with my multi-lingual programming idea |
2022-12-19 07:20:02 +0100 | <Inst> | like, teaching an FP course in two languages at once, a hybrid or imperative language, and Haskell |
2022-12-19 07:20:15 +0100 | <Inst> | force people to implement monads in the hybrid / imperative language |
2022-12-19 07:20:18 +0100 | <DigitalKiwi> | that's basically what that course i linked is |
2022-12-19 07:20:24 +0100 | <Inst> | is it concurrent? |
2022-12-19 07:21:08 +0100 | <DigitalKiwi> | i did the sml examples in haskell too |
2022-12-19 07:21:19 +0100 | <DigitalKiwi> | s/examples/exercises/ |
2022-12-19 07:22:34 +0100 | <DigitalKiwi> | it's a free course and all of the materials are available (some courses don't let you take the tests etc. but this one did) |
2022-12-19 07:25:29 +0100 | kenran | (~user@user/kenran) |
2022-12-19 07:25:31 +0100 | kenran | (~user@user/kenran) (Remote host closed the connection) |
2022-12-19 07:27:31 +0100 | takuan | (~takuan@178-116-218-225.access.telenet.be) |
2022-12-19 07:29:12 +0100 | bgs | (~bgs@212-85-160-171.dynamic.telemach.net) |
2022-12-19 07:29:20 +0100 | kenran | (~user@user/kenran) |
2022-12-19 07:29:51 +0100 | kenran | (~user@user/kenran) (Remote host closed the connection) |
2022-12-19 07:32:15 +0100 | merijn | (~merijn@86-86-29-250.fixed.kpn.net) |
2022-12-19 07:42:15 +0100 | trev | (~trev@user/trev) |
2022-12-19 07:42:16 +0100 | Kaiepi | (~Kaiepi@108.175.84.104) |
2022-12-19 07:47:34 +0100 | trev | (~trev@user/trev) (Remote host closed the connection) |
2022-12-19 07:48:33 +0100 | trev | (~trev@user/trev) |
2022-12-19 07:52:40 +0100 | sammelweis | (~quassel@c-68-48-18-140.hsd1.mi.comcast.net) (Ping timeout: 260 seconds) |
2022-12-19 07:54:07 +0100 | emmanuelux | (~emmanuelu@user/emmanuelux) (Quit: au revoir) |
2022-12-19 07:56:09 +0100 | Guest123 | (~Guest123@102.118.46.174) |
2022-12-19 07:56:56 +0100 | telser | (~quassel@user/telser) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.) |
2022-12-19 07:58:38 +0100 | mncheck | (~mncheck@193.224.205.254) |
2022-12-19 07:58:49 +0100 | Guest123 | jhdr |
2022-12-19 08:00:21 +0100 | johnw | (~johnw@2600:1700:cf00:db0:c0a7:cf05:c926:15f4) |
2022-12-19 08:00:55 +0100 | mncheck | (~mncheck@193.224.205.254) (Remote host closed the connection) |
2022-12-19 08:06:18 +0100 | mncheck | (~mncheck@193.224.205.254) |
2022-12-19 08:06:54 +0100 | merijn | (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 260 seconds) |
2022-12-19 08:10:24 +0100 | telser | (~quassel@user/telser) |
2022-12-19 08:24:35 +0100 | merijn | (~merijn@86-86-29-250.fixed.kpn.net) |
2022-12-19 08:27:33 +0100 | coot | (~coot@213.134.171.3) |
2022-12-19 08:28:35 +0100 | bgs | (~bgs@212-85-160-171.dynamic.telemach.net) (Remote host closed the connection) |
2022-12-19 08:29:15 +0100 | <markasoftware> | when you need to compose more than 3 monads do you usually write your own monad that does everything needed, or build a monstrosity of monad transformers and lifts? |
2022-12-19 08:30:17 +0100 | merijn | (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 268 seconds) |
2022-12-19 08:31:50 +0100 | shriekingnoise | (~shrieking@186.137.167.202) (Quit: Quit) |
2022-12-19 08:34:18 +0100 | <opqdonut> | I'd newtype the stack, and add helpers like `myFoo = lift originalFoo; myBar = lift (lift originalBar)` |
2022-12-19 08:38:08 +0100 | quazimodo | (~quazimodo@122-199-39-221.ip4.superloop.com) (Ping timeout: 252 seconds) |
2022-12-19 08:38:16 +0100 | lortabac | (~lortabac@2a01:e0a:541:b8f0:ef88:3e30:d92e:5615) |
2022-12-19 08:39:30 +0100 | trev | (~trev@user/trev) (Remote host closed the connection) |
2022-12-19 08:40:30 +0100 | trev | (~trev@user/trev) |
2022-12-19 08:51:22 +0100 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
2022-12-19 09:12:08 +0100 | gurkenglas | (~gurkengla@p548ac72e.dip0.t-ipconnect.de) |
2022-12-19 09:12:22 +0100 | mbuf | (~Shakthi@49.204.139.20) |
2022-12-19 09:19:05 +0100 | alexiscott | (~user@4.red-83-36-45.dynamicip.rima-tde.net) |
2022-12-19 09:21:14 +0100 | alexiscott | (~user@4.red-83-36-45.dynamicip.rima-tde.net) (Client Quit) |
2022-12-19 09:21:24 +0100 | arahael | (~arahael@193-119-109-208.tpgi.com.au) (Ping timeout: 252 seconds) |
2022-12-19 09:26:55 +0100 | gurkenglas | (~gurkengla@p548ac72e.dip0.t-ipconnect.de) (Ping timeout: 265 seconds) |
2022-12-19 09:27:54 +0100 | gmg | (~user@user/gehmehgeh) |
2022-12-19 09:33:55 +0100 | Inst | (~Inst@2601:6c4:4081:54f0:38bc:71f6:776d:9675) (Ping timeout: 260 seconds) |
2022-12-19 09:40:11 +0100 | bontaq | (~user@ool-45779fe5.dyn.optonline.net) |
2022-12-19 09:43:24 +0100 | arahael | (~arahael@193-119-109-208.tpgi.com.au) |
2022-12-19 09:46:08 +0100 | beefbambi | (~beefbambi@183.82.30.144) (Ping timeout: 268 seconds) |
2022-12-19 09:47:02 +0100 | taeaad | (~taeaad@user/taeaad) |
2022-12-19 09:47:05 +0100 | beefbambi | (~beefbambi@2401:4900:230d:f57c:538c:d7cc:50c0:e377) |
2022-12-19 09:47:43 +0100 | beefbambi | (~beefbambi@2401:4900:230d:f57c:538c:d7cc:50c0:e377) (Read error: Connection reset by peer) |
2022-12-19 09:48:32 +0100 | beefbambi | (~beefbambi@183.82.30.144) |
2022-12-19 09:49:15 +0100 | kuribas | (~user@ptr-17d51eoh5205c65jz5o.18120a2.ip6.access.telenet.be) |
2022-12-19 09:50:04 +0100 | acidjnk | (~acidjnk@p200300d6e7137a39c81a3694893f5e3e.dip0.t-ipconnect.de) |
2022-12-19 09:51:56 +0100 | azimut | (~azimut@gateway/tor-sasl/azimut) (Ping timeout: 255 seconds) |
2022-12-19 09:53:30 +0100 | merijn | (~merijn@195.114.232.74) |
2022-12-19 09:54:05 +0100 | machinedgod | (~machinedg@d198-53-218-113.abhsia.telus.net) |
2022-12-19 09:55:32 +0100 | bitdex_ | (~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 255 seconds) |
2022-12-19 09:57:09 +0100 | bitdex_ | (~bitdex@gateway/tor-sasl/bitdex) |
2022-12-19 09:57:09 +0100 | beefbambi | (~beefbambi@183.82.30.144) (Read error: Connection reset by peer) |
2022-12-19 09:57:25 +0100 | beefbambi | (~beefbambi@183.82.30.144) |
2022-12-19 09:58:06 +0100 | beefbambi | (~beefbambi@183.82.30.144) (Read error: Connection reset by peer) |
2022-12-19 09:58:42 +0100 | beefbambi | (~beefbambi@183.82.30.144) |
2022-12-19 10:01:01 +0100 | azimut | (~azimut@gateway/tor-sasl/azimut) |
2022-12-19 10:02:13 +0100 | gehmehgeh | (~user@user/gehmehgeh) |
2022-12-19 10:02:14 +0100 | fserucas | (~fserucas@2001:818:e376:a400:fb92:70c1:dd88:c7d7) |
2022-12-19 10:02:44 +0100 | gmg | (~user@user/gehmehgeh) (Ping timeout: 255 seconds) |
2022-12-19 10:03:06 +0100 | beefbambi | (~beefbambi@183.82.30.144) (Read error: Connection reset by peer) |
2022-12-19 10:04:14 +0100 | beefbambi | (~beefbambi@183.82.30.144) |
2022-12-19 10:04:32 +0100 | chexum | (~quassel@gateway/tor-sasl/chexum) (Ping timeout: 255 seconds) |
2022-12-19 10:05:30 +0100 | chexum | (~quassel@gateway/tor-sasl/chexum) |
2022-12-19 10:08:07 +0100 | tok | (~user@mobile-access-d98cd1-96.dhcp.inet.fi) |
2022-12-19 10:12:44 +0100 | v0id_ptr | (~adrift@user/ptr-frac7al/x-0038398) |
2022-12-19 10:19:40 +0100 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:6111:8f0f:4f2:4e8d) (Remote host closed the connection) |
2022-12-19 10:20:17 +0100 | azimut | (~azimut@gateway/tor-sasl/azimut) (Ping timeout: 255 seconds) |
2022-12-19 10:21:06 +0100 | azimut | (~azimut@gateway/tor-sasl/azimut) |
2022-12-19 10:21:13 +0100 | arahael | (~arahael@193-119-109-208.tpgi.com.au) (Ping timeout: 252 seconds) |
2022-12-19 10:24:11 +0100 | cfricke | (~cfricke@user/cfricke) |
2022-12-19 10:29:52 +0100 | tok | (~user@mobile-access-d98cd1-96.dhcp.inet.fi) (Changing host) |
2022-12-19 10:29:52 +0100 | tok | (~user@user/tok) |
2022-12-19 10:32:37 +0100 | gehmehgeh | (~user@user/gehmehgeh) (Quit: Leaving) |
2022-12-19 10:35:27 +0100 | son0p | (~ff@2604:3d08:5b7f:5540::417e) (Ping timeout: 256 seconds) |
2022-12-19 10:36:38 +0100 | yuribarros | (~yuribarro@2804:14c:65e4:865c::1000) (Remote host closed the connection) |
2022-12-19 10:36:56 +0100 | yuribarros | (~yuribarro@2804:14c:65e4:865c::1000) |
2022-12-19 10:37:56 +0100 | foul_owl | (~kerry@193.29.61.234) (Ping timeout: 268 seconds) |
2022-12-19 10:41:02 +0100 | beefbambi | (~beefbambi@183.82.30.144) (Read error: Connection reset by peer) |
2022-12-19 10:41:39 +0100 | beefbambi | (~beefbambi@183.82.30.144) |
2022-12-19 10:41:42 +0100 | econo | (uid147250@user/econo) (Quit: Connection closed for inactivity) |
2022-12-19 10:43:13 +0100 | arahael | (~arahael@193-119-109-208.tpgi.com.au) |
2022-12-19 10:46:13 +0100 | beefbambi | (~beefbambi@183.82.30.144) (Read error: Connection reset by peer) |
2022-12-19 10:46:27 +0100 | beefbambi | (~beefbambi@183.82.30.144) |
2022-12-19 10:47:03 +0100 | chele | (~chele@user/chele) |
2022-12-19 10:48:29 +0100 | pagnol | (~user@213-205-209-87.ftth.glasoperator.nl) |
2022-12-19 10:49:17 +0100 | andreas303 | (andreas303@ip227.orange.bnc4free.com) (Quit: fBNC - https://bnc4free.com) |
2022-12-19 10:49:34 +0100 | xacktm | (~xacktm@user/xacktm) (Ping timeout: 265 seconds) |
2022-12-19 10:53:24 +0100 | foul_owl | (~kerry@193.29.61.234) |
2022-12-19 10:57:24 +0100 | coot | (~coot@213.134.171.3) (Quit: coot) |
2022-12-19 11:00:56 +0100 | beefbambi | (~beefbambi@183.82.30.144) (Read error: Connection reset by peer) |
2022-12-19 11:05:47 +0100 | tzh | (~tzh@c-24-21-73-154.hsd1.or.comcast.net) (Quit: zzz) |
2022-12-19 11:08:33 +0100 | ft | (~ft@p4fc2a257.dip0.t-ipconnect.de) (Quit: leaving) |
2022-12-19 11:09:15 +0100 | Sgeo | (~Sgeo@user/sgeo) (Read error: Connection reset by peer) |
2022-12-19 11:12:30 +0100 | xff0x | (~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp) (Ping timeout: 252 seconds) |
2022-12-19 11:16:46 +0100 | jhdr | (~Guest123@102.118.46.174) (Quit: Client closed) |
2022-12-19 11:20:09 +0100 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:6111:8f0f:4f2:4e8d) |
2022-12-19 11:20:11 +0100 | vpan | (~0@212.117.1.172) |
2022-12-19 11:23:18 +0100 | Lord_of_Life_ | (~Lord@user/lord-of-life/x-2819915) |
2022-12-19 11:24:28 +0100 | Lord_of_Life | (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 252 seconds) |
2022-12-19 11:24:34 +0100 | Lord_of_Life_ | Lord_of_Life |
2022-12-19 11:25:26 +0100 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:6111:8f0f:4f2:4e8d) (Ping timeout: 255 seconds) |
2022-12-19 11:28:51 +0100 | trev | (~trev@user/trev) (Quit: trev) |
2022-12-19 11:29:25 +0100 | bontaq | (~user@ool-45779fe5.dyn.optonline.net) (Ping timeout: 252 seconds) |
2022-12-19 11:32:40 +0100 | tok | (~user@user/tok) (Remote host closed the connection) |
2022-12-19 11:33:05 +0100 | glguy | (~glguy@libera/staff-emeritus/glguy) (Ping timeout: 255 seconds) |
2022-12-19 11:33:36 +0100 | glguy | (~glguy@libera/staff-emeritus/glguy) |
2022-12-19 11:34:09 +0100 | glguy | (~glguy@libera/staff-emeritus/glguy) (Read error: Connection reset by peer) |
2022-12-19 11:37:28 +0100 | glguy | (~glguy@libera/staff-emeritus/glguy) |
2022-12-19 11:37:35 +0100 | beteigeuze | (~Thunderbi@bl14-81-220.dsl.telepac.pt) |
2022-12-19 11:40:11 +0100 | trev | (~trev@user/trev) |
2022-12-19 11:41:56 +0100 | beefbambi | (~beefbambi@183.82.30.144) |
2022-12-19 11:47:23 +0100 | zer0bitz_ | (~zer0bitz@196.244.192.59) |
2022-12-19 11:47:26 +0100 | xacktm | (~xacktm@user/xacktm) |
2022-12-19 11:49:10 +0100 | beefbambi | (~beefbambi@183.82.30.144) (Ping timeout: 272 seconds) |
2022-12-19 11:49:23 +0100 | beefbambi | (~beefbambi@2401:4900:230d:f57c:538c:d7cc:50c0:e377) |
2022-12-19 11:49:45 +0100 | zer0bitz | (~zer0bitz@196.244.192.59) (Ping timeout: 255 seconds) |
2022-12-19 11:52:36 +0100 | beefbambi | (~beefbambi@2401:4900:230d:f57c:538c:d7cc:50c0:e377) (Read error: Connection reset by peer) |
2022-12-19 11:53:02 +0100 | beefbambi | (~beefbambi@183.82.30.144) |
2022-12-19 11:53:12 +0100 | Me-me | (~Me-me@146.102.215.218.dyn.iprimus.net.au) (Quit: Going offline, see ya! (www.adiirc.com)) |
2022-12-19 11:58:03 +0100 | zer0bitz | (~zer0bitz@196.244.192.58) |
2022-12-19 11:59:58 +0100 | zer0bitz_ | (~zer0bitz@196.244.192.59) (Ping timeout: 268 seconds) |
2022-12-19 12:01:14 +0100 | andreas303 | (andreas303@ip227.orange.bnc4free.com) |
2022-12-19 12:06:44 +0100 | hueso | (~root@user/hueso) (Ping timeout: 268 seconds) |
2022-12-19 12:06:57 +0100 | xff0x | (~xff0x@ai071162.d.east.v6connect.net) |
2022-12-19 12:13:45 +0100 | Inst | (~Inst@2601:6c4:4081:54f0:e018:7519:854e:3017) |
2022-12-19 12:13:52 +0100 | <Inst> | has anyone gotten 3 penny GUI to work recently? |
2022-12-19 12:19:57 +0100 | mbuf | (~Shakthi@49.204.139.20) (Ping timeout: 265 seconds) |
2022-12-19 12:21:48 +0100 | hueso | (~root@user/hueso) |
2022-12-19 12:26:20 +0100 | int-e | (~noone@int-e.eu) (Remote host closed the connection) |
2022-12-19 12:26:49 +0100 | mbuf | (~Shakthi@49.204.120.206) |
2022-12-19 12:27:30 +0100 | mbuf | (~Shakthi@49.204.120.206) (Remote host closed the connection) |
2022-12-19 12:27:31 +0100 | int-e | (~noone@int-e.eu) |
2022-12-19 12:29:24 +0100 | lambdabot | (~lambdabot@haskell/bot/lambdabot) (Remote host closed the connection) |
2022-12-19 12:29:52 +0100 | lambdabot | (~lambdabot@silicon.int-e.eu) |
2022-12-19 12:29:52 +0100 | lambdabot | (~lambdabot@silicon.int-e.eu) (Changing host) |
2022-12-19 12:29:52 +0100 | lambdabot | (~lambdabot@haskell/bot/lambdabot) |
2022-12-19 12:36:10 +0100 | Guest123 | (~Guest123@102.118.46.174) |
2022-12-19 12:37:34 +0100 | califax | (~califax@user/califx) (Remote host closed the connection) |
2022-12-19 12:38:10 +0100 | Guest123 | (~Guest123@102.118.46.174) (Client Quit) |
2022-12-19 12:38:33 +0100 | califax | (~califax@user/califx) |
2022-12-19 12:38:42 +0100 | jhdr | (~jhdr@102.118.46.174) |
2022-12-19 12:40:53 +0100 | jakalx | (~jakalx@base.jakalx.net) () |
2022-12-19 12:42:08 +0100 | ulvarrefr | (~user@188.124.56.153) |
2022-12-19 12:42:15 +0100 | jakalx | (~jakalx@base.jakalx.net) |
2022-12-19 12:43:40 +0100 | dextaa6 | (~DV@user/dextaa) |
2022-12-19 12:44:48 +0100 | son0p | (~ff@2604:3d08:5b7f:5540::e96e) |
2022-12-19 12:45:30 +0100 | jhdr_ | (~jhdr@102.118.46.174) |
2022-12-19 12:45:35 +0100 | hueso | (~root@user/hueso) (Ping timeout: 268 seconds) |
2022-12-19 12:45:43 +0100 | gnalzo | (~gnalzo@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c) |
2022-12-19 12:46:10 +0100 | dextaa | (~DV@user/dextaa) (Ping timeout: 272 seconds) |
2022-12-19 12:46:10 +0100 | dextaa6 | dextaa |
2022-12-19 12:46:53 +0100 | hueso | (~root@user/hueso) |
2022-12-19 12:50:21 +0100 | jhdr | (~jhdr@102.118.46.174) (Quit: Client closed) |
2022-12-19 12:51:45 +0100 | Alex_test | (~al_test@178.34.161.14) (Ping timeout: 268 seconds) |
2022-12-19 12:53:46 +0100 | AlexZenon | (~alzenon@178.34.161.14) (Ping timeout: 272 seconds) |
2022-12-19 12:53:46 +0100 | AlexNoo | (~AlexNoo@178.34.161.14) (Ping timeout: 272 seconds) |
2022-12-19 12:53:54 +0100 | jmdaemon | (~jmdaemon@user/jmdaemon) (Ping timeout: 260 seconds) |
2022-12-19 12:55:45 +0100 | ubert | (~Thunderbi@p200300ecdf264e7e72c65d11ee5c445f.dip0.t-ipconnect.de) |
2022-12-19 13:07:08 +0100 | meinside | (uid24933@id-24933.helmsley.irccloud.com) (Quit: Connection closed for inactivity) |
2022-12-19 13:08:30 +0100 | CiaoSen | (~Jura@p200300c9570e1d002a3a4dfffe84dbd5.dip0.t-ipconnect.de) |
2022-12-19 13:09:35 +0100 | hueso | (~root@user/hueso) (Ping timeout: 256 seconds) |
2022-12-19 13:10:14 +0100 | raym | (~ray@user/raym) (Ping timeout: 272 seconds) |
2022-12-19 13:12:53 +0100 | slack1256 | (~slack1256@191.126.99.70) |
2022-12-19 13:14:54 +0100 | __monty__ | (~toonn@user/toonn) |
2022-12-19 13:15:14 +0100 | slack1256 | (~slack1256@191.126.99.70) (Remote host closed the connection) |
2022-12-19 13:15:29 +0100 | beefbambi | (~beefbambi@183.82.30.144) (Read error: Connection reset by peer) |
2022-12-19 13:15:46 +0100 | beefbambi | (~beefbambi@2401:4900:230d:f57c:538c:d7cc:50c0:e377) |
2022-12-19 13:22:54 +0100 | beefbambi | (~beefbambi@2401:4900:230d:f57c:538c:d7cc:50c0:e377) (Read error: Connection reset by peer) |
2022-12-19 13:24:19 +0100 | beefbambi | (~beefbambi@183.82.30.144) |
2022-12-19 13:26:55 +0100 | raym | (~ray@user/raym) |
2022-12-19 13:33:51 +0100 | yuribarros | (~yuribarro@2804:14c:65e4:865c::1000) (Quit: Leaving) |
2022-12-19 13:36:00 +0100 | xacktm | (~xacktm@user/xacktm) (Quit: fBNC - https://bnc4free.com) |
2022-12-19 13:36:00 +0100 | andreas303 | (andreas303@ip227.orange.bnc4free.com) (Remote host closed the connection) |
2022-12-19 13:39:59 +0100 | hueso | (~root@user/hueso) |
2022-12-19 13:46:45 +0100 | AlexNoo | (~AlexNoo@94.233.241.57) |
2022-12-19 13:47:27 +0100 | waleee | (~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) |
2022-12-19 13:48:29 +0100 | Alex_test | (~al_test@94.233.241.57) |
2022-12-19 13:50:40 +0100 | freeside | (~mengwong@213.86.11.74) |
2022-12-19 13:52:54 +0100 | AlexZenon | (~alzenon@94.233.241.57) |
2022-12-19 13:55:45 +0100 | beefbambi | (~beefbambi@183.82.30.144) (Ping timeout: 255 seconds) |
2022-12-19 13:56:17 +0100 | beefbambi | (~beefbambi@2401:4900:230d:f57c:538c:d7cc:50c0:e377) |
2022-12-19 13:57:38 +0100 | acidjnk | (~acidjnk@p200300d6e7137a39c81a3694893f5e3e.dip0.t-ipconnect.de) (Ping timeout: 246 seconds) |
2022-12-19 13:58:34 +0100 | <trev> | how do i apply a function over a list of lists? |
2022-12-19 13:58:48 +0100 | <Rembane> | trev: With more map! |
2022-12-19 13:58:56 +0100 | <Rembane> | trev: What's the type of the function? |
2022-12-19 14:00:33 +0100 | <trev> | i'm doing some crazy crappy parsing for AoC... want to apply `dropAround` for each Text in [[Text]] |
2022-12-19 14:01:26 +0100 | <merijn> | trev: Hint: what's the type of "map (f :: Int -> Char)" :) |
2022-12-19 14:04:48 +0100 | <trev> | [Int] -> [Char] ? |
2022-12-19 14:05:12 +0100 | freeside | (~mengwong@213.86.11.74) (Ping timeout: 252 seconds) |
2022-12-19 14:06:16 +0100 | <merijn> | Looks suspiciously like the kinda function you'd pass to map ;) |
2022-12-19 14:07:29 +0100 | <trev> | :D i'm dumb |
2022-12-19 14:07:45 +0100 | <trev> | is there a concise way to do it in haskell? |
2022-12-19 14:07:59 +0100 | <trev> | like <$$> (wishful) |
2022-12-19 14:08:07 +0100 | <merijn> | trev: Just do "map (map f)"? |
2022-12-19 14:09:04 +0100 | <trev> | works |
2022-12-19 14:09:10 +0100 | <trev> | thanks |
2022-12-19 14:11:07 +0100 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2022-12-19 14:13:24 +0100 | zer0bitz | (~zer0bitz@196.244.192.58) (Read error: Connection reset by peer) |
2022-12-19 14:15:14 +0100 | Sciencentistguy9 | (~sciencent@hacksoc/ordinary-member) |
2022-12-19 14:15:51 +0100 | zer0bitz | (~zer0bitz@196.244.192.58) |
2022-12-19 14:17:10 +0100 | Sciencentistguy | (~sciencent@hacksoc/ordinary-member) (Ping timeout: 252 seconds) |
2022-12-19 14:17:10 +0100 | Sciencentistguy9 | Sciencentistguy |
2022-12-19 14:23:16 +0100 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:6111:8f0f:4f2:4e8d) |
2022-12-19 14:24:02 +0100 | [itchyjunk] | (~itchyjunk@user/itchyjunk/x-7353470) |
2022-12-19 14:27:39 +0100 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:6111:8f0f:4f2:4e8d) (Ping timeout: 252 seconds) |
2022-12-19 14:27:51 +0100 | xacktm | (~xacktm@user/xacktm) |
2022-12-19 14:28:18 +0100 | andreas303 | (andreas303@ip227.orange.bnc4free.com) |
2022-12-19 14:29:17 +0100 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
2022-12-19 14:32:19 +0100 | coot | (~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) |
2022-12-19 14:35:58 +0100 | mvk | (~mvk@2607:fea8:5ce3:8500::6126) |
2022-12-19 14:37:06 +0100 | mvk | (~mvk@2607:fea8:5ce3:8500::6126) (Client Quit) |
2022-12-19 14:40:42 +0100 | coot | (~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) (Quit: coot) |
2022-12-19 14:41:31 +0100 | fizbin | (~fizbin@user/fizbin) (Ping timeout: 268 seconds) |
2022-12-19 14:43:10 +0100 | coot_ | (~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) |
2022-12-19 14:44:43 +0100 | beefbambi | (~beefbambi@2401:4900:230d:f57c:538c:d7cc:50c0:e377) (Read error: Connection reset by peer) |
2022-12-19 14:45:21 +0100 | <fendor[m]> | is ghc 9.4.2 busted on windows in some way? |
2022-12-19 14:45:29 +0100 | beefbambi | (~beefbambi@183.82.30.144) |
2022-12-19 14:45:54 +0100 | coot_ | coot |
2022-12-19 14:47:04 +0100 | v0id_ptr | (~adrift@user/ptr-frac7al/x-0038398) (Ping timeout: 268 seconds) |
2022-12-19 14:50:45 +0100 | jhdr_ | (~jhdr@102.118.46.174) (Ping timeout: 265 seconds) |
2022-12-19 14:51:03 +0100 | MangoIV[m] | (~mangoivma@2001:470:69fc:105::2:8417) |
2022-12-19 14:56:10 +0100 | razetime | (~quassel@49.207.230.181) (Ping timeout: 252 seconds) |
2022-12-19 14:59:05 +0100 | fizbin | (~fizbin@user/fizbin) |
2022-12-19 14:59:14 +0100 | fizbin | (~fizbin@user/fizbin) (Read error: Connection reset by peer) |
2022-12-19 14:59:50 +0100 | Kaiepi | (~Kaiepi@108.175.84.104) (Ping timeout: 252 seconds) |
2022-12-19 14:59:56 +0100 | fizbin | (~fizbin@user/fizbin) |
2022-12-19 15:00:32 +0100 | <Inst> | bleh |
2022-12-19 15:00:40 +0100 | <Inst> | sort of sad that i have no time, i'm thinking about |
2022-12-19 15:00:46 +0100 | <Inst> | or rather, no skill |
2022-12-19 15:00:56 +0100 | <Inst> | i'm thinking about refactoring my Haskell program into running entirely in the IO monad |
2022-12-19 15:01:07 +0100 | Kaiepi | (~Kaiepi@108.175.84.104) |
2022-12-19 15:02:03 +0100 | thongpv87 | (~thongpv87@113.169.255.193) |
2022-12-19 15:04:45 +0100 | shriekingnoise | (~shrieking@186.137.167.202) |
2022-12-19 15:05:33 +0100 | <lortabac> | Inst: you mean without transformers? or literally having everything in IO (what would be the point)? |
2022-12-19 15:05:42 +0100 | waleee | (~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) (Ping timeout: 252 seconds) |
2022-12-19 15:05:53 +0100 | <Inst> | with IORef |
2022-12-19 15:06:07 +0100 | <Inst> | more to the point that Haskell is actually a multiparadigm language (you need HOOP or Objective to get objects, though) |
2022-12-19 15:06:27 +0100 | thongpv87 | (~thongpv87@113.169.255.193) (Quit: leaving) |
2022-12-19 15:06:34 +0100 | <lortabac> | IORef instead of what? |
2022-12-19 15:07:46 +0100 | <Inst> | processing via expression-only language |
2022-12-19 15:07:56 +0100 | <Inst> | and for loops via forM_ |
2022-12-19 15:12:18 +0100 | pavonia | (~user@user/siracusa) (Quit: Bye!) |
2022-12-19 15:16:06 +0100 | jhdr | (~jhdr@102.118.128.137) |
2022-12-19 15:16:58 +0100 | <c_wraith> | that seems like a really hard way to use Haskell |
2022-12-19 15:17:10 +0100 | jhdr | (~jhdr@102.118.128.137) (Client Quit) |
2022-12-19 15:20:27 +0100 | bgs | (~bgs@212-85-160-171.dynamic.telemach.net) |
2022-12-19 15:22:03 +0100 | <lortabac> | I mean, IORef instead of State/Writer makes sense if you want to avoid transformers |
2022-12-19 15:22:24 +0100 | <lortabac> | but IORef everywhere... why? |
2022-12-19 15:25:44 +0100 | fizbin_ | (~fizbin@user/fizbin) |
2022-12-19 15:26:47 +0100 | <c_wraith> | maybe you don't like ease of reasoning? |
2022-12-19 15:28:17 +0100 | fizbin | (~fizbin@user/fizbin) (Read error: Connection reset by peer) |
2022-12-19 15:31:45 +0100 | morb | (~morb@pool-72-80-94-112.nycmny.fios.verizon.net) |
2022-12-19 15:35:35 +0100 | beefbambi | (~beefbambi@183.82.30.144) (Read error: Connection reset by peer) |
2022-12-19 15:36:40 +0100 | morb | (~morb@pool-72-80-94-112.nycmny.fios.verizon.net) (Ping timeout: 265 seconds) |
2022-12-19 15:36:55 +0100 | fizbin__ | (~fizbin@user/fizbin) |
2022-12-19 15:36:55 +0100 | <maerwald> | c_wraith: transformers and ease of reasoning? |
2022-12-19 15:37:15 +0100 | beefbambi | (~beefbambi@2401:4900:230d:f57c:538c:d7cc:50c0:e377) |
2022-12-19 15:37:45 +0100 | gnalzo | (~gnalzo@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c) (Quit: WeeChat 3.7.1) |
2022-12-19 15:38:06 +0100 | <maerwald> | We could start with explaining MonadBaseControl, MonadUnliftIO and friends. And then maybe how StateT interacts with inner IO and exceptions |
2022-12-19 15:38:11 +0100 | <c_wraith> | maerwald: nah, pure expressions and ease of reasoning. |
2022-12-19 15:38:36 +0100 | beefbambi | (~beefbambi@2401:4900:230d:f57c:538c:d7cc:50c0:e377) (Read error: Connection reset by peer) |
2022-12-19 15:38:46 +0100 | danza | (~francesco@151.47.236.122) |
2022-12-19 15:39:04 +0100 | <c_wraith> | though I am apparently the only person in the world who's unsurprised about the interaction of MonadBaseControl and bracket. |
2022-12-19 15:39:25 +0100 | beefbambi | (~beefbambi@183.82.30.144) |
2022-12-19 15:39:55 +0100 | fizbin_ | (~fizbin@user/fizbin) (Ping timeout: 260 seconds) |
2022-12-19 15:40:04 +0100 | <maerwald> | right, effects systems make it a tad easier |
2022-12-19 15:40:32 +0100 | <maerwald> | https://github.com/hasura/eff/issues/12 |
2022-12-19 15:40:44 +0100 | fizbin | (~fizbin@user/fizbin) |
2022-12-19 15:40:53 +0100 | rekahsoft | (~rekahsoft@2605:8d80:6e2:a50e:e78b:13e9:40ed:3d2c) |
2022-12-19 15:43:09 +0100 | fizbin__ | (~fizbin@user/fizbin) (Ping timeout: 256 seconds) |
2022-12-19 15:44:00 +0100 | <maerwald> | but yeah, IO is so hard... |
2022-12-19 15:44:41 +0100 | <lortabac> | maerwald: I think we are discussing using IO instead of pure functions |
2022-12-19 15:44:48 +0100 | mikoto-chan | (~mikoto-ch@2001:999:488:d7ee:b232:de3f:f786:6eb) |
2022-12-19 15:44:50 +0100 | <maerwald> | :D |
2022-12-19 15:45:41 +0100 | danza | (~francesco@151.47.236.122) (Read error: Connection reset by peer) |
2022-12-19 15:48:01 +0100 | fizbin | (~fizbin@user/fizbin) (Read error: Connection reset by peer) |
2022-12-19 15:54:11 +0100 | freeside | (~mengwong@212.12.38.120) |
2022-12-19 15:54:51 +0100 | jakalx | (~jakalx@base.jakalx.net) (Error from remote client) |
2022-12-19 15:59:15 +0100 | jakalx | (~jakalx@base.jakalx.net) |
2022-12-19 16:01:31 +0100 | mikoto-chan | (~mikoto-ch@2001:999:488:d7ee:b232:de3f:f786:6eb) (Read error: Connection reset by peer) |
2022-12-19 16:03:02 +0100 | mikoto-chan | (~mikoto-ch@2001:999:488:d7ee:b232:de3f:f786:6eb) |
2022-12-19 16:12:50 +0100 | razetime | (~quassel@49.207.230.181) |
2022-12-19 16:14:27 +0100 | <maerwald> | how do you make a list of Proxies? |
2022-12-19 16:16:45 +0100 | n0den1te | (~~.~@2401:4900:1cc8:a400:6e01:e0b7:1a5e:9c43) |
2022-12-19 16:17:33 +0100 | <Hecate> | (without Impredicative Types!) |
2022-12-19 16:23:36 +0100 | mikoto-chan | (~mikoto-ch@2001:999:488:d7ee:b232:de3f:f786:6eb) (Quit: WeeChat 3.6) |
2022-12-19 16:24:47 +0100 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:6111:8f0f:4f2:4e8d) |
2022-12-19 16:26:07 +0100 | mikoto-chan | (~mikoto-ch@2001:999:488:d7ee:b232:de3f:f786:6eb) |
2022-12-19 16:26:11 +0100 | mikoto-chan | (~mikoto-ch@2001:999:488:d7ee:b232:de3f:f786:6eb) (Client Quit) |
2022-12-19 16:26:54 +0100 | fizbin | (~fizbin@user/fizbin) |
2022-12-19 16:29:08 +0100 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:6111:8f0f:4f2:4e8d) (Ping timeout: 246 seconds) |
2022-12-19 16:36:59 +0100 | bodisiw | (~bodiskw@128.163.238.17) |
2022-12-19 16:37:31 +0100 | cfricke | (~cfricke@user/cfricke) (Quit: WeeChat 3.7.1) |
2022-12-19 16:40:35 +0100 | freeside | (~mengwong@212.12.38.120) (Ping timeout: 260 seconds) |
2022-12-19 16:43:35 +0100 | Xeroine | (~Xeroine@user/xeroine) (Quit: ZNC 1.8.2+deb2+b1 - https://znc.in) |
2022-12-19 16:44:19 +0100 | beefbambi | (~beefbambi@183.82.30.144) (Ping timeout: 260 seconds) |
2022-12-19 16:44:25 +0100 | Xeroine | (~Xeroine@user/xeroine) |
2022-12-19 16:44:45 +0100 | beefbambi | (~beefbambi@2401:4900:230d:f57c:538c:d7cc:50c0:e377) |
2022-12-19 16:48:39 +0100 | beefbambi | (~beefbambi@2401:4900:230d:f57c:538c:d7cc:50c0:e377) (Read error: Connection reset by peer) |
2022-12-19 16:48:59 +0100 | beefbambi | (~beefbambi@183.82.30.144) |
2022-12-19 16:52:37 +0100 | gurkenglas | (~gurkengla@p548ac72e.dip0.t-ipconnect.de) |
2022-12-19 16:57:36 +0100 | beteigeuze | (~Thunderbi@bl14-81-220.dsl.telepac.pt) (Quit: beteigeuze) |
2022-12-19 17:01:49 +0100 | waleee | (~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) |
2022-12-19 17:02:11 +0100 | jinsun__ | (~jinsun@user/jinsun) |
2022-12-19 17:02:11 +0100 | jinsun | Guest2165 |
2022-12-19 17:02:11 +0100 | jinsun__ | jinsun |
2022-12-19 17:02:29 +0100 | j4cc3b | (~jeffreybe@pool-74-105-2-138.nwrknj.fios.verizon.net) |
2022-12-19 17:03:20 +0100 | Guest2165 | (~jinsun@user/jinsun) (Ping timeout: 260 seconds) |
2022-12-19 17:04:49 +0100 | nschoe | (~q@141.101.51.197) |
2022-12-19 17:05:24 +0100 | elevenkb | (~elevenkb@105.224.37.128) |
2022-12-19 17:08:49 +0100 | razetime | (~quassel@49.207.230.181) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.) |
2022-12-19 17:09:57 +0100 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2022-12-19 17:12:03 +0100 | kenran | (~user@user/kenran) |
2022-12-19 17:12:29 +0100 | kenran | (~user@user/kenran) (Remote host closed the connection) |
2022-12-19 17:13:18 +0100 | waleee | (~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) (Ping timeout: 252 seconds) |
2022-12-19 17:13:46 +0100 | lortabac | (~lortabac@2a01:e0a:541:b8f0:ef88:3e30:d92e:5615) (Quit: WeeChat 2.8) |
2022-12-19 17:15:00 +0100 | waleee | (~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) |
2022-12-19 17:20:35 +0100 | merijn | (~merijn@195.114.232.74) (Ping timeout: 260 seconds) |
2022-12-19 17:21:38 +0100 | fizbin | (~fizbin@user/fizbin) (Ping timeout: 246 seconds) |
2022-12-19 17:27:51 +0100 | Inst_ | (~Inst@2601:6c4:4081:54f0:7095:a698:8ea8:7bc6) |
2022-12-19 17:27:51 +0100 | beefbambi | (~beefbambi@183.82.30.144) (Read error: Connection reset by peer) |
2022-12-19 17:28:09 +0100 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
2022-12-19 17:29:01 +0100 | beefbambi | (~beefbambi@183.82.30.144) |
2022-12-19 17:30:44 +0100 | shapr | (~user@68.54.166.125) |
2022-12-19 17:31:38 +0100 | Inst | (~Inst@2601:6c4:4081:54f0:e018:7519:854e:3017) (Ping timeout: 252 seconds) |
2022-12-19 17:35:18 +0100 | rekahsoft | (~rekahsoft@2605:8d80:6e2:a50e:e78b:13e9:40ed:3d2c) (Ping timeout: 260 seconds) |
2022-12-19 17:35:51 +0100 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:6111:8f0f:4f2:4e8d) |
2022-12-19 17:37:38 +0100 | waleee | (~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) (Ping timeout: 260 seconds) |
2022-12-19 17:43:26 +0100 | coot | (~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) (Quit: coot) |
2022-12-19 17:44:55 +0100 | <kuribas> | Any news about FOSDEM 2023? I made a proposal but it is still undecided... |
2022-12-19 17:45:13 +0100 | <kuribas> | I probably was too late submitting it. |
2022-12-19 17:45:15 +0100 | gnalzo | (~gnalzo@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c) |
2022-12-19 17:53:14 +0100 | Xeroine | (~Xeroine@user/xeroine) (Remote host closed the connection) |
2022-12-19 17:54:06 +0100 | Xeroine | (~Xeroine@user/xeroine) |
2022-12-19 17:59:29 +0100 | Tuplanolla | (~Tuplanoll@91-159-68-152.elisa-laajakaista.fi) |
2022-12-19 18:02:24 +0100 | elevenkb | (~elevenkb@105.224.37.128) (Quit: Client closed) |
2022-12-19 18:03:15 +0100 | dsrt^ | (~dsrt@76.145.185.103) (Remote host closed the connection) |
2022-12-19 18:05:41 +0100 | morb | (~morb@pool-72-80-94-112.nycmny.fios.verizon.net) |
2022-12-19 18:06:59 +0100 | FragByte | (~christian@user/fragbyte) (Quit: Quit) |
2022-12-19 18:07:09 +0100 | johnw | (~johnw@2600:1700:cf00:db0:c0a7:cf05:c926:15f4) (Quit: ZNC - http://znc.in) |
2022-12-19 18:07:21 +0100 | jakalx | (~jakalx@base.jakalx.net) () |
2022-12-19 18:08:02 +0100 | jakalx | (~jakalx@base.jakalx.net) |
2022-12-19 18:09:19 +0100 | jmdaemon | (~jmdaemon@user/jmdaemon) |
2022-12-19 18:09:58 +0100 | morb | (~morb@pool-72-80-94-112.nycmny.fios.verizon.net) (Remote host closed the connection) |
2022-12-19 18:15:20 +0100 | slack1256 | (~slack1256@186.11.29.60) |
2022-12-19 18:16:22 +0100 | <slack1256> | > show "gato" |
2022-12-19 18:16:24 +0100 | <lambdabot> | "\"gato\"" |
2022-12-19 18:16:36 +0100 | jao | (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) |
2022-12-19 18:17:03 +0100 | <slack1256> | Is there a newtype over String that has a Show instance where the result does not have the extra " ? |
2022-12-19 18:17:20 +0100 | <geekosaur> | no |
2022-12-19 18:17:49 +0100 | <c_wraith> | you could create one, but why? That's not what Show is for... |
2022-12-19 18:18:17 +0100 | <slack1256> | Yeah, it is an abuse of Show. Maybe I should use Pretty or something. |
2022-12-19 18:18:32 +0100 | Unicorn_Princess | (~Unicorn_P@user/Unicorn-Princess/x-3540542) |
2022-12-19 18:19:27 +0100 | beteigeuze | (~Thunderbi@bl14-81-220.dsl.telepac.pt) |
2022-12-19 18:20:46 +0100 | td_ | (~td@83.135.9.40) (Quit: waking up from the american dream ...) |
2022-12-19 18:24:24 +0100 | pagnol | (~user@213-205-209-87.ftth.glasoperator.nl) (Remote host closed the connection) |
2022-12-19 18:27:23 +0100 | n0den1te | (~~.~@2401:4900:1cc8:a400:6e01:e0b7:1a5e:9c43) () |
2022-12-19 18:30:52 +0100 | morb | (~morb@pool-72-80-94-112.nycmny.fios.verizon.net) |
2022-12-19 18:32:11 +0100 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2022-12-19 18:33:24 +0100 | td_ | (~td@83.135.9.40) |
2022-12-19 18:34:43 +0100 | chele | (~chele@user/chele) (Remote host closed the connection) |
2022-12-19 18:35:08 +0100 | morb | (~morb@pool-72-80-94-112.nycmny.fios.verizon.net) (Ping timeout: 246 seconds) |
2022-12-19 18:35:14 +0100 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:6111:8f0f:4f2:4e8d) (Remote host closed the connection) |
2022-12-19 18:44:39 +0100 | nschoe | (~q@141.101.51.197) (Quit: Switching off) |
2022-12-19 18:47:31 +0100 | johnw | (~johnw@2600:1700:cf00:db0:c0a7:cf05:c926:15f4) |
2022-12-19 18:49:03 +0100 | wootehfoot | (~wootehfoo@user/wootehfoot) |
2022-12-19 18:49:11 +0100 | borrow | (~borrow@dynamic-78-8-220-237.ssp.dialog.net.pl) |
2022-12-19 18:49:59 +0100 | wootehfoot | (~wootehfoo@user/wootehfoot) (Max SendQ exceeded) |
2022-12-19 18:50:23 +0100 | borrow | (~borrow@dynamic-78-8-220-237.ssp.dialog.net.pl) (Client Quit) |
2022-12-19 18:51:02 +0100 | wootehfoot | (~wootehfoo@user/wootehfoot) |
2022-12-19 18:51:29 +0100 | fizbin | (~fizbin@user/fizbin) |
2022-12-19 18:52:25 +0100 | jinsun | (~jinsun@user/jinsun) (Ping timeout: 260 seconds) |
2022-12-19 18:52:48 +0100 | tzh | (~tzh@c-24-21-73-154.hsd1.or.comcast.net) |
2022-12-19 18:53:26 +0100 | econo | (uid147250@user/econo) |
2022-12-19 19:01:17 +0100 | fizbin | (~fizbin@user/fizbin) (Remote host closed the connection) |
2022-12-19 19:01:36 +0100 | fizbin | (~fizbin@user/fizbin) |
2022-12-19 19:02:54 +0100 | coot | (~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) |
2022-12-19 19:03:16 +0100 | <kuribas> | > id "gato" -- slack1256 |
2022-12-19 19:03:17 +0100 | <lambdabot> | "gato" |
2022-12-19 19:03:48 +0100 | <kuribas> | slack1256: https://hackage.haskell.org/package/formatting-7.2.0/docs/Formatting.html |
2022-12-19 19:06:46 +0100 | kuribas | (~user@ptr-17d51eoh5205c65jz5o.18120a2.ip6.access.telenet.be) (Quit: ERC (IRC client for Emacs 27.1)) |
2022-12-19 19:06:53 +0100 | CiaoSen | (~Jura@p200300c9570e1d002a3a4dfffe84dbd5.dip0.t-ipconnect.de) (Ping timeout: 260 seconds) |
2022-12-19 19:10:59 +0100 | acidjnk | (~acidjnk@p200300d6e7137a97c81a3694893f5e3e.dip0.t-ipconnect.de) |
2022-12-19 19:14:29 +0100 | Guest8974 | (~finn@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) |
2022-12-19 19:18:15 +0100 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:6111:8f0f:4f2:4e8d) |
2022-12-19 19:18:38 +0100 | vpan | (~0@212.117.1.172) (Quit: Leaving.) |
2022-12-19 19:19:05 +0100 | coot | (~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) (Quit: coot) |
2022-12-19 19:20:05 +0100 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
2022-12-19 19:20:15 +0100 | Xeroine | (~Xeroine@user/xeroine) (Excess Flood) |
2022-12-19 19:22:37 +0100 | Xeroine | (~Xeroine@user/xeroine) |
2022-12-19 19:22:43 +0100 | Me-me | (~Me-me@146.102.215.218.dyn.iprimus.net.au) |
2022-12-19 19:23:11 +0100 | Jade[m] | Jadesheit[m] |
2022-12-19 19:36:05 +0100 | tomokojun | (~tomokojun@75.164.24.44) |
2022-12-19 19:36:18 +0100 | beteigeuze | (~Thunderbi@bl14-81-220.dsl.telepac.pt) (Ping timeout: 252 seconds) |
2022-12-19 19:38:16 +0100 | Red_Swan | (~jared@174-23-134-43.slkc.qwest.net) |
2022-12-19 19:39:28 +0100 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:6111:8f0f:4f2:4e8d) (Remote host closed the connection) |
2022-12-19 19:43:13 +0100 | coot | (~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) |
2022-12-19 19:43:33 +0100 | beteigeuze | (~Thunderbi@bl14-81-220.dsl.telepac.pt) |
2022-12-19 19:45:29 +0100 | bitdex_ | (~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 255 seconds) |
2022-12-19 19:48:00 +0100 | beteigeuze | (~Thunderbi@bl14-81-220.dsl.telepac.pt) (Ping timeout: 265 seconds) |
2022-12-19 19:48:50 +0100 | jinsun | (~jinsun@user/jinsun) |
2022-12-19 19:50:00 +0100 | jinsun__ | (~jinsun@user/jinsun) |
2022-12-19 19:50:00 +0100 | jinsun | Guest3566 |
2022-12-19 19:50:01 +0100 | Guest3566 | (~jinsun@user/jinsun) (Killed (copper.libera.chat (Nickname regained by services))) |
2022-12-19 19:50:01 +0100 | jinsun__ | jinsun |
2022-12-19 19:56:13 +0100 | sayola1 | (~sayola@dslb-088-064-186-217.088.064.pools.vodafone-ip.de) (Ping timeout: 265 seconds) |
2022-12-19 19:56:20 +0100 | sayola | (~sayola@dslb-002-201-085-035.002.201.pools.vodafone-ip.de) |
2022-12-19 19:57:20 +0100 | bitdex_ | (~bitdex@gateway/tor-sasl/bitdex) |
2022-12-19 20:00:13 +0100 | tomokojun | (~tomokojun@75.164.24.44) (Remote host closed the connection) |
2022-12-19 20:00:41 +0100 | elevenkb | (~elevenkb@105.224.37.128) |
2022-12-19 20:07:17 +0100 | segfaultfizzbuzz | (~segfaultf@23-93-74-212.fiber.dynamic.sonic.net) |
2022-12-19 20:18:22 +0100 | Guest8974 | (~finn@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) (Ping timeout: 272 seconds) |
2022-12-19 20:19:43 +0100 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:6111:8f0f:4f2:4e8d) |
2022-12-19 20:25:23 +0100 | irrgit_ | (~irrgit@146.70.27.250) |
2022-12-19 20:28:04 +0100 | codaraxis | (~codaraxis@user/codaraxis) |
2022-12-19 20:33:43 +0100 | unit73e | (~emanuel@2001:818:e8dd:7c00:656:e5ff:fe72:9d36) |
2022-12-19 20:35:41 +0100 | unit73e | (~emanuel@2001:818:e8dd:7c00:656:e5ff:fe72:9d36) (Client Quit) |
2022-12-19 20:37:48 +0100 | unit73e | (~emanuel@2001:818:e8dd:7c00:656:e5ff:fe72:9d36) |
2022-12-19 20:38:18 +0100 | shapr | (~user@68.54.166.125) (Remote host closed the connection) |
2022-12-19 20:49:15 +0100 | Guest8974 | (~finn@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) |
2022-12-19 20:50:30 +0100 | elevenkb | (~elevenkb@105.224.37.128) (Quit: Client closed) |
2022-12-19 20:54:18 +0100 | isovector | (~isovector@172.103.253.106.cable.tpia.cipherkey.com) |
2022-12-19 20:55:05 +0100 | beteigeuze | (~Thunderbi@a79-169-109-107.cpe.netcabo.pt) |
2022-12-19 20:55:14 +0100 | ft | (~ft@p4fc2a257.dip0.t-ipconnect.de) |
2022-12-19 20:57:02 +0100 | isovector | (~isovector@172.103.253.106.cable.tpia.cipherkey.com) () |
2022-12-19 20:57:24 +0100 | sammelweis | (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) |
2022-12-19 21:00:09 +0100 | beteigeuze | (~Thunderbi@a79-169-109-107.cpe.netcabo.pt) (Ping timeout: 268 seconds) |
2022-12-19 21:01:43 +0100 | mikoto-chan | (~mikoto-ch@85-76-117-48-nat.elisa-mobile.fi) |
2022-12-19 21:03:47 +0100 | ec | (~ec@gateway/tor-sasl/ec) |
2022-12-19 21:03:52 +0100 | mvk | (~mvk@2607:fea8:5ce3:8500::6126) |
2022-12-19 21:04:07 +0100 | mvk | (~mvk@2607:fea8:5ce3:8500::6126) (Client Quit) |
2022-12-19 21:06:02 +0100 | ec_ | (~ec@gateway/tor-sasl/ec) (Ping timeout: 255 seconds) |
2022-12-19 21:06:22 +0100 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:6111:8f0f:4f2:4e8d) (Remote host closed the connection) |
2022-12-19 21:10:59 +0100 | elevenkb | (~elevenkb@105.224.37.128) |
2022-12-19 21:17:15 +0100 | kenran | (~user@user/kenran) |
2022-12-19 21:17:23 +0100 | merijn | (~merijn@86-86-29-250.fixed.kpn.net) |
2022-12-19 21:17:36 +0100 | kenran | (~user@user/kenran) (Remote host closed the connection) |
2022-12-19 21:18:29 +0100 | sammelweis | (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) (Read error: Connection reset by peer) |
2022-12-19 21:19:38 +0100 | sammelweis | (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) |
2022-12-19 21:22:21 +0100 | merijn | (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 268 seconds) |
2022-12-19 21:22:22 +0100 | elevenkb | (~elevenkb@105.224.37.128) (Quit: Client closed) |
2022-12-19 21:26:16 +0100 | eggplantade | (~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net) |
2022-12-19 21:29:07 +0100 | geekosaur | (~geekosaur@xmonad/geekosaur) (Killed (NickServ (GHOST command used by allbery_b))) |
2022-12-19 21:29:07 +0100 | allbery_b | (~geekosaur@xmonad/geekosaur) |
2022-12-19 21:29:10 +0100 | allbery_b | geekosaur |
2022-12-19 21:33:52 +0100 | coot | (~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) (Quit: coot) |
2022-12-19 21:35:35 +0100 | chymera | (~chymera@ns1000526.ip-51-81-46.us) (Remote host closed the connection) |
2022-12-19 21:37:40 +0100 | Guest8974 | (~finn@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) (Ping timeout: 252 seconds) |
2022-12-19 21:40:14 +0100 | fizbin | (~fizbin@user/fizbin) (Ping timeout: 252 seconds) |
2022-12-19 21:40:26 +0100 | eggplantade | (~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
2022-12-19 21:42:31 +0100 | Lycurgus | (~juan@user/Lycurgus) |
2022-12-19 21:51:16 +0100 | Xeroine | (~Xeroine@user/xeroine) (Remote host closed the connection) |
2022-12-19 21:52:08 +0100 | Xeroine | (~Xeroine@user/xeroine) |
2022-12-19 21:54:24 +0100 | <voidzero> | Hi, as an assignment I have: write out the evaluation steps for foldl (flip (*)) 1 [1..3]. Is this correct? https://paste.tomsmeding.com/FkuajyVj |
2022-12-19 21:55:49 +0100 | td_ | (~td@83.135.9.40) (Ping timeout: 260 seconds) |
2022-12-19 21:56:32 +0100 | slack1256 | (~slack1256@186.11.29.60) (Ping timeout: 272 seconds) |
2022-12-19 21:56:38 +0100 | <Jadesheit[m]> | flip (*) is funny |
2022-12-19 21:58:42 +0100 | <voidzero> | it's not my favorite assignment :) foldl by itself is confoozing |
2022-12-19 21:58:57 +0100 | <Jadesheit[m]> | I may just not see something but I don't get a lot of the steps |
2022-12-19 21:59:05 +0100 | <Jadesheit[m]> | does not seem right to me |
2022-12-19 21:59:35 +0100 | <Jadesheit[m]> | what do you think happens in the first step? |
2022-12-19 21:59:49 +0100 | <voidzero> | yeah i messed this up |
2022-12-19 22:00:19 +0100 | <Jadesheit[m]> | lets go through it step by step, ok? |
2022-12-19 22:01:00 +0100 | <Jadesheit[m]> | first of all you havefoldl (flip (*)) 1 [1, 2, 3] |
2022-12-19 22:01:03 +0100 | <Jadesheit[m]> | s// `/, s//`/ |
2022-12-19 22:01:21 +0100 | <Jadesheit[m]> | can you look at the definition of foldl and tell me how this would expand? |
2022-12-19 22:01:51 +0100 | <voidzero> | thanks. foldl (*) 2 [1..3] is going to become ((2 * 1) * 2 ) * 3 |
2022-12-19 22:01:57 +0100 | fserucas | (~fserucas@2001:818:e376:a400:fb92:70c1:dd88:c7d7) (Quit: Leaving) |
2022-12-19 22:02:13 +0100 | <Jadesheit[m]> | that's already the entire expansion. Only apply the definition once |
2022-12-19 22:03:03 +0100 | <MangoIV[m]> | <maerwald> "how do you make a list of..." <- HList? A good implementation of HList is NP from sop-core |
2022-12-19 22:03:06 +0100 | <voidzero> | foldl (flip (*)) 1) * 2) * 3 |
2022-12-19 22:03:17 +0100 | <voidzero> | sorry |
2022-12-19 22:03:21 +0100 | <voidzero> | foldl ((flip (*)) 1) * 2) * 3 |
2022-12-19 22:03:32 +0100 | <Jadesheit[m]> | this also applies the recursive definitions |
2022-12-19 22:03:48 +0100 | <Jadesheit[m]> | can you tell me what foldl looks like? |
2022-12-19 22:04:25 +0100 | Xeroine_ | (~Xeroine@user/xeroine) |
2022-12-19 22:04:35 +0100 | <voidzero> | foldl f acc (x:xs) = foldl f (f acc x) xs |
2022-12-19 22:04:46 +0100 | Xeroine | (~Xeroine@user/xeroine) (Ping timeout: 272 seconds) |
2022-12-19 22:05:02 +0100 | <voidzero> | this is really difficult for me to grasp though, thanks for bearing with me :) |
2022-12-19 22:05:22 +0100 | <voidzero> | weird how foldr seems easier |
2022-12-19 22:05:47 +0100 | <Jadesheit[m]> | it is, but it's important to know this |
2022-12-19 22:06:04 +0100 | Lycurgus | (~juan@user/Lycurgus) (Quit: Exeunt: personae.ai-integration.biz) |
2022-12-19 22:06:17 +0100 | <Jadesheit[m]> | voidzero: apply this *once* to the original expression |
2022-12-19 22:06:39 +0100 | chymera | (~chymera@ns1000526.ip-51-81-46.us) |
2022-12-19 22:06:40 +0100 | <voidzero> | foldl (flip (*)) 1 (1:[2,3,4]) |
2022-12-19 22:06:44 +0100 | <voidzero> | i'm not sure how to write xs |
2022-12-19 22:07:17 +0100 | <Jadesheit[m]> | don't yet evaluate |
2022-12-19 22:07:22 +0100 | <Jadesheit[m]> | note down the thunks |
2022-12-19 22:07:34 +0100 | <Jadesheit[m]> | and your xs is not quite correct |
2022-12-19 22:07:41 +0100 | <MangoIV[m]> | MangoIV[m]: It’s probably XY though, I’d expect you want to store your types in a list and then just get a proxy if you need one |
2022-12-19 22:07:54 +0100 | <MangoIV[m]> | As Proxy is basically unit you can always just make one. |
2022-12-19 22:09:07 +0100 | <voidzero> | the list is (1:2:3:[]) |
2022-12-19 22:09:16 +0100 | <Jadesheit[m]> | yes |
2022-12-19 22:09:25 +0100 | <voidzero> | is 1 taken as x and the rest (2:3:[]) as xs? |
2022-12-19 22:09:32 +0100 | <Jadesheit[m]> | correct |
2022-12-19 22:09:36 +0100 | <voidzero> | alright |
2022-12-19 22:09:51 +0100 | <voidzero> | foldl (flip (*)) 1 (1:2:3:4:[]) |
2022-12-19 22:10:18 +0100 | bgs | (~bgs@212-85-160-171.dynamic.telemach.net) (Remote host closed the connection) |
2022-12-19 22:10:35 +0100 | <Jadesheit[m]> | where do you get the four from? |
2022-12-19 22:10:48 +0100 | <voidzero> | i got carried away lol |
2022-12-19 22:11:09 +0100 | Sgeo | (~Sgeo@user/sgeo) |
2022-12-19 22:11:15 +0100 | <voidzero> | foldl (flip (*)) 1 (1:2:3:[]) |
2022-12-19 22:11:42 +0100 | <Jadesheit[m]> | that's our starting expression |
2022-12-19 22:11:43 +0100 | <Jadesheit[m]> | now apply foldl once |
2022-12-19 22:12:08 +0100 | <Jadesheit[m]> | voidzero: using this information |
2022-12-19 22:12:31 +0100 | <Square> | Why cant I combine "where" with guards in this https://paste.tomsmeding.com/Nw53Nmg3 . Seem I cant have the "| otherwise = .. " if i have a where in the previous guard. |
2022-12-19 22:12:34 +0100 | <voidzero> | foldl (flip (*)) 1 (1:2:3:[]) = foldl (flip (*)) ((flip (*)) 1 1) 2:3:[] |
2022-12-19 22:13:05 +0100 | <Jadesheit[m]> | very good |
2022-12-19 22:13:15 +0100 | <Jadesheit[m]> | (paranthesize the last expression) |
2022-12-19 22:13:25 +0100 | <Jadesheit[m]> | * (paranthesize the list expression at the end) |
2022-12-19 22:13:32 +0100 | <Jadesheit[m]> | now apply foldl again |
2022-12-19 22:13:36 +0100 | <voidzero> | ah yes. -- foldl (flip (*)) 1 (1:2:3:[]) = foldl (flip (*)) ((flip (*)) 1 1) (2:3:[]) |
2022-12-19 22:13:56 +0100 | <Jadesheit[m]> | now apply foldl again |
2022-12-19 22:14:52 +0100 | <voidzero> | let's see |
2022-12-19 22:16:10 +0100 | <Square> | nvm, ofcourse it should be after last guard |
2022-12-19 22:16:51 +0100 | <geekosaur> | correct, where applies to all guards |
2022-12-19 22:18:47 +0100 | <voidzero> | it's a bit confusing with all these parentheses, still chewing on it for a bit |
2022-12-19 22:19:18 +0100 | <Jadesheit[m]> | no worries, take your time |
2022-12-19 22:19:28 +0100 | <voidzero> | ty |
2022-12-19 22:19:31 +0100 | <Jadesheit[m]> | you can also ask questions or send intermediate results |
2022-12-19 22:20:32 +0100 | tvandinther | (~tvandinth@203.34.100.2) |
2022-12-19 22:20:42 +0100 | danza | (~francesco@151.37.165.128) |
2022-12-19 22:21:02 +0100 | shapr | (~user@68.54.166.125) |
2022-12-19 22:21:48 +0100 | <voidzero> | foldl ((flip (*)) ((flip (*)) 1 1) 2) (3:[]) |
2022-12-19 22:21:50 +0100 | <voidzero> | I *think* |
2022-12-19 22:22:32 +0100 | <Jadesheit[m]> | very good |
2022-12-19 22:22:34 +0100 | <Jadesheit[m]> | yes |
2022-12-19 22:22:41 +0100 | <Jadesheit[m]> | one more |
2022-12-19 22:23:07 +0100 | <voidzero> | alright |
2022-12-19 22:23:21 +0100 | <tvandinther> | Hello. Does anybody here have experience with compiling binaries across various OS and arch using GitHub actions? I'm trying to set up a workflow to compile for various platforms and have them uploaded to a GitHub release. Example yaml files would be a big help if you know of any. |
2022-12-19 22:24:25 +0100 | <voidzero> | Jadesheit[m], foldl (((flip (*)) ((flip (*)) 1 1) 2) 3) [] |
2022-12-19 22:24:36 +0100 | <Jadesheit[m]> | very nice |
2022-12-19 22:24:48 +0100 | wootehfoot | (~wootehfoo@user/wootehfoot) (Read error: Connection reset by peer) |
2022-12-19 22:24:55 +0100 | <Jadesheit[m]> | ah wait, minor detail |
2022-12-19 22:25:01 +0100 | <Jadesheit[m]> | you still need to pass the function |
2022-12-19 22:25:10 +0100 | <Jadesheit[m]> | same with the version above |
2022-12-19 22:25:36 +0100 | <voidzero> | ah yes so the intuitive idea ("needs one more flip (*)") was right |
2022-12-19 22:25:54 +0100 | <Jadesheit[m]> | yes! |
2022-12-19 22:26:07 +0100 | danza | (~francesco@151.37.165.128) (Read error: Connection reset by peer) |
2022-12-19 22:26:39 +0100 | <Jadesheit[m]> | voidzero: can you write down this with the function passed? |
2022-12-19 22:26:50 +0100 | <Jadesheit[m]> | (just add the function as the first parameter) |
2022-12-19 22:27:53 +0100 | <voidzero> | like this? : |
2022-12-19 22:27:55 +0100 | <voidzero> | foldl (flip (*)) ((flip (*)) 1 1) (2:3:[]) = foldl ((flip (*)) ((flip (*)) 1 1) (flip (*)) 2) (3:[]) |
2022-12-19 22:29:40 +0100 | <Jadesheit[m]> | in the definition of foldl the function is still passed |
2022-12-19 22:29:40 +0100 | <Jadesheit[m]> | so even on the other side you still need it |
2022-12-19 22:31:37 +0100 | <voidzero> | oh. I guess I only did that in the first evaluation step |
2022-12-19 22:31:41 +0100 | <voidzero> | yes, let's see |
2022-12-19 22:32:16 +0100 | <Jadesheit[m]> | brb* |
2022-12-19 22:32:50 +0100 | beteigeuze | (~Thunderbi@a79-169-109-107.cpe.netcabo.pt) |
2022-12-19 22:34:59 +0100 | <EvanR> | voidzero, yeah foldr is easier because it's just doing constructor replacement |
2022-12-19 22:36:26 +0100 | <EvanR> | [] -> z |
2022-12-19 22:36:38 +0100 | <EvanR> | (:) x xs -> f x xs |
2022-12-19 22:37:14 +0100 | <voidzero> | yeah. It's just easier to brain :) |
2022-12-19 22:37:50 +0100 | <EvanR> | and easier to laze (which as of now is the verb form of lazy) |
2022-12-19 22:40:13 +0100 | <voidzero> | yes I'm tempted to laze way too often! |
2022-12-19 22:40:29 +0100 | <voidzero> | ok so this is what i came up with when not lazeing (lazing?) |
2022-12-19 22:40:33 +0100 | <voidzero> | https://paste.tomsmeding.com/EHvYCmc7 |
2022-12-19 22:40:56 +0100 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:6111:8f0f:4f2:4e8d) |
2022-12-19 22:41:37 +0100 | <EvanR> | someone probably asked this already but what's the point of flip (*), assuming it's a commutative operation |
2022-12-19 22:41:45 +0100 | <EvanR> | adding a lot f noise |
2022-12-19 22:42:58 +0100 | kenaryn | (~aurele@cre71-h03-89-88-44-27.dsl.sta.abo.bbox.fr) |
2022-12-19 22:43:11 +0100 | <voidzero> | nothing. It's just the author of this book being a sadist (eyeballing you chris allen wherever you are) |
2022-12-19 22:43:21 +0100 | <Jadesheit[m]> | its an exercise about evaluation |
2022-12-19 22:43:29 +0100 | <EvanR> | alright assuming your listing is right, you're not done |
2022-12-19 22:43:37 +0100 | <voidzero> | nah for the purposes of figuring out evaluating it's not that bad |
2022-12-19 22:44:24 +0100 | <Jadesheit[m]> | voidzero: this is close but you started writing the `flip (*)` infix |
2022-12-19 22:44:46 +0100 | <Jadesheit[m]> | it needs to be flip (*) a b |
2022-12-19 22:45:12 +0100 | <voidzero> | ah yes. more parentheses needed |
2022-12-19 22:45:40 +0100 | <Jadesheit[m]> | yep haha |
2022-12-19 22:45:44 +0100 | <EvanR> | Not Enough Parenthesene Gas |
2022-12-19 22:45:45 +0100 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:6111:8f0f:4f2:4e8d) (Ping timeout: 260 seconds) |
2022-12-19 22:46:44 +0100 | <voidzero> | good catch. So 3 becomes: foldl ((flip (*)) ((flip (*)) 1 1) ((flip (*))) 2) (3:[]) |
2022-12-19 22:47:00 +0100 | <voidzero> | followed by: foldl (((flip (*)) ((flip (*)) 1 1) ((flip (*))) 2) (flip (*)) 3) [] |
2022-12-19 22:47:04 +0100 | pagnol | (~user@213-205-209-87.ftth.glasoperator.nl) |
2022-12-19 22:47:49 +0100 | <voidzero> | wait let me check that |
2022-12-19 22:47:50 +0100 | <EvanR> | ((flip (*))) seems redundant right |
2022-12-19 22:48:32 +0100 | <pagnol> | I'm looking for a datastructure to express a mapping from some type A to another type B |
2022-12-19 22:48:41 +0100 | <pagnol> | something like Map A B, but it should be total |
2022-12-19 22:48:51 +0100 | <EvanR> | hackage package total-map |
2022-12-19 22:49:03 +0100 | <voidzero> | EvanR, yes, let me correct these last two steps |
2022-12-19 22:49:17 +0100 | <pagnol> | thanks |
2022-12-19 22:49:37 +0100 | <Jadesheit[m]> | voidzero: I think (???) its right |
2022-12-19 22:49:47 +0100 | <Jadesheit[m]> | now you need to apply foldl once again |
2022-12-19 22:49:53 +0100 | <Jadesheit[m]> | but another case |
2022-12-19 22:49:57 +0100 | td_ | (~td@83.135.9.40) |
2022-12-19 22:50:01 +0100 | <Jadesheit[m]> | the one for the empty list |
2022-12-19 22:50:23 +0100 | <EvanR> | @src foldl |
2022-12-19 22:50:23 +0100 | <lambdabot> | foldl f z [] = z |
2022-12-19 22:50:23 +0100 | <lambdabot> | foldl f z (x:xs) = foldl f (f z x) xs |
2022-12-19 22:50:40 +0100 | takuan | (~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection) |
2022-12-19 22:51:03 +0100 | <voidzero> | ghci says no |
2022-12-19 22:51:06 +0100 | bodisiw | (~bodiskw@128.163.238.17) (Quit: This computer has gone to sleep) |
2022-12-19 22:51:13 +0100 | <Jadesheit[m]> | ok let me see |
2022-12-19 22:51:40 +0100 | <Jadesheit[m]> | should I just write it out once? |
2022-12-19 22:51:48 +0100 | <Jadesheit[m]> | because I know you have the right idea |
2022-12-19 22:51:55 +0100 | <EvanR> | cool thing about haskell, you can factor out the (flip (*)) into a let for readability |
2022-12-19 22:52:25 +0100 | <Jadesheit[m]> | EvanR: if you are supposed to show evaluation i would think that's not allowed? |
2022-12-19 22:52:28 +0100 | <Jadesheit[m]> | or it might be |
2022-12-19 22:52:46 +0100 | <EvanR> | well you could still use it as an aid to working it out, then unfactor it in the end |
2022-12-19 22:52:52 +0100 | MajorBiscuit | (~MajorBisc@31-23-159.netrun.cytanet.com.cy) |
2022-12-19 22:53:00 +0100 | <Jadesheit[m]> | fair! |
2022-12-19 22:53:19 +0100 | <EvanR> | the unfactoring will be easy and correct thanks to referential transparency |
2022-12-19 22:53:24 +0100 | <voidzero> | got it |
2022-12-19 22:53:26 +0100 | <Jadesheit[m]> | that's actually good, I'd do let mult = flip (*) in ... |
2022-12-19 22:53:26 +0100 | <voidzero> | foldl (flip (*)) ((flip (*)) ((flip (*)) 1 1) 2) (3:[]) |
2022-12-19 22:53:38 +0100 | <Jadesheit[m]> | perfect |
2022-12-19 22:53:40 +0100 | <Jadesheit[m]> | yes |
2022-12-19 22:53:53 +0100 | <voidzero> | ah that let is a good idea yes |
2022-12-19 22:53:54 +0100 | <Jadesheit[m]> | now apply once more |
2022-12-19 22:54:38 +0100 | <voidzero> | yes: foldl (flip (*)) (flip (*) ((flip (*)) ((flip (*)) 1 1) 2) 3) [] |
2022-12-19 22:54:57 +0100 | <Jadesheit[m]> | parantheses on the first function |
2022-12-19 22:55:06 +0100 | <Jadesheit[m]> | but seems good |
2022-12-19 22:55:25 +0100 | <Jadesheit[m]> | <lambdabot> "foldl f z [] = z" <- now apply foldl again, noting that the case here is different |
2022-12-19 22:55:26 +0100 | gurkenglas | (~gurkengla@p548ac72e.dip0.t-ipconnect.de) (Ping timeout: 272 seconds) |
2022-12-19 22:57:21 +0100 | <voidzero> | ok.. let's see |
2022-12-19 22:57:44 +0100 | <pagnol> | does it make sense to use Data.Map.Strict when the number of key-value pairs is low? |
2022-12-19 22:58:26 +0100 | <Jadesheit[m]> | pagnol: how low, and do you eventually access all pairs? |
2022-12-19 22:58:45 +0100 | <pagnol> | say only a few dozen, and yes I do access all eventually |
2022-12-19 22:58:45 +0100 | <monochrom> | Perhaps not. But I wouldn't worry about it until benchmarking says you need to worry about it. |
2022-12-19 22:59:14 +0100 | <monochrom> | The thing is hardware keeps changing so the "low" threshold keeps changing too. It's a moving target. |
2022-12-19 22:59:33 +0100 | <pagnol> | I'm curious what Haskellers use, though |
2022-12-19 22:59:50 +0100 | <monochrom> | Haskellers just use Data.Map.Strict and move on. |
2022-12-19 23:00:11 +0100 | <monochrom> | Haskellers worry about actual issues not micromanagement issues. |
2022-12-19 23:00:12 +0100 | <EvanR> | I'd probably use list of (k,v) more often if the API didn't suck xD |
2022-12-19 23:00:14 +0100 | <voidzero> | so when we remove the list and the function it becomes this: |
2022-12-19 23:00:17 +0100 | <voidzero> | flip (*) ((flip (*)) ((flip (*)) 1 1) 2) 3 |
2022-12-19 23:00:20 +0100 | zns | (~zns@user/zns) (Remote host closed the connection) |
2022-12-19 23:00:29 +0100 | <EvanR> | congrats you just foldl'ed |
2022-12-19 23:00:51 +0100 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2022-12-19 23:01:16 +0100 | <voidzero> | actually I think that was incorrect and this is correct: |
2022-12-19 23:01:19 +0100 | <voidzero> | (flip (*)) ((flip (*)) ((flip (*)) 1 1) 2) 3 |
2022-12-19 23:01:39 +0100 | <voidzero> | both give the same answer but infix vs prefix |
2022-12-19 23:01:43 +0100 | <Jadesheit[m]> | should be the same I think |
2022-12-19 23:01:58 +0100 | <EvanR> | that's the same thing |
2022-12-19 23:02:03 +0100 | <Jadesheit[m]> | voidzero: not infix but just currying |
2022-12-19 23:02:04 +0100 | <EvanR> | (f x) y = f x y |
2022-12-19 23:02:15 +0100 | zns | (~zns@user/zns) |
2022-12-19 23:02:15 +0100 | <EvanR> | not currying but simply grouping |
2022-12-19 23:02:25 +0100 | <EvanR> | using assocativity rules |
2022-12-19 23:02:39 +0100 | <Jadesheit[m]> | voidzero: now you can start evaluating this bad boy |
2022-12-19 23:02:46 +0100 | ystael | (~ystael@user/ystael) (Quit: Lost terminal) |
2022-12-19 23:02:48 +0100 | <Jadesheit[m]> | EvanR: yeah sorry |
2022-12-19 23:02:53 +0100 | <voidzero> | let's do it |
2022-12-19 23:03:01 +0100 | <EvanR> | no reason to evaluate it, it's fine xD |
2022-12-19 23:03:35 +0100 | <EvanR> | @src flip |
2022-12-19 23:03:35 +0100 | <lambdabot> | flip f x y = f y x |
2022-12-19 23:04:32 +0100 | <pagnol> | EvanR ha, I was thinking the same |
2022-12-19 23:04:35 +0100 | <Jadesheit[m]> | would it be "correct" to write `flip (*) a b` as `b * a` in this context, maintaining the infixity of the operator? |
2022-12-19 23:05:12 +0100 | <EvanR> | sure |
2022-12-19 23:05:17 +0100 | <pagnol> | about the (k, v) API being being a bit unergonomic |
2022-12-19 23:05:24 +0100 | <EvanR> | (*) x y = x * y |
2022-12-19 23:06:43 +0100 | <monochrom> | But if you're using foldl, the choice is between (flip (*)) and (\x y -> y * x) |
2022-12-19 23:07:48 +0100 | <voidzero> | (flip (*)) ((flip (*)) ((flip (*)) 1 1) 2) 3 = (flip (*)) ((flip (*)) (1 * 1) 2) 3 |
2022-12-19 23:08:28 +0100 | <voidzero> | (flip (*)) (1 * 2) 3 |
2022-12-19 23:08:42 +0100 | <voidzero> | 2 * 3 |
2022-12-19 23:08:44 +0100 | <voidzero> | 6 |
2022-12-19 23:08:49 +0100 | <Jadesheit[m]> | don't be so quick |
2022-12-19 23:08:54 +0100 | <voidzero> | darn :D |
2022-12-19 23:08:56 +0100 | <Jadesheit[m]> | leave the thunks for a second |
2022-12-19 23:09:39 +0100 | <Jadesheit[m]> | (its absolutely correct, but I assume your prof will want to see the expansion as thunks) |
2022-12-19 23:09:42 +0100 | <voidzero> | (flip (*)) (2 * (1 * 1)) 3 |
2022-12-19 23:10:15 +0100 | <Jadesheit[m]> | yes |
2022-12-19 23:10:16 +0100 | <voidzero> | 3 * (2 * (1 * 1)) |
2022-12-19 23:10:17 +0100 | <Jadesheit[m]> | once more |
2022-12-19 23:10:29 +0100 | <Jadesheit[m]> | perfect |
2022-12-19 23:10:42 +0100 | <Jadesheit[m]> | now, slowly work your way from the inside out |
2022-12-19 23:10:49 +0100 | <Jadesheit[m]> | and then you're done |
2022-12-19 23:10:59 +0100 | <voidzero> | 3 * (2 * 1) |
2022-12-19 23:11:04 +0100 | <voidzero> | 3 * 2 |
2022-12-19 23:11:08 +0100 | <voidzero> | 6 |
2022-12-19 23:11:10 +0100 | Alex_test | (~al_test@94.233.241.57) (Ping timeout: 252 seconds) |
2022-12-19 23:11:16 +0100 | <Jadesheit[m]> | congratulations |
2022-12-19 23:11:21 +0100 | <Jadesheit[m]> | well done! |
2022-12-19 23:11:54 +0100 | AlexZenon | (~alzenon@94.233.241.57) (Ping timeout: 252 seconds) |
2022-12-19 23:13:13 +0100 | opticblast | (~Thunderbi@172.58.82.193) |
2022-12-19 23:13:37 +0100 | <voidzero> | thank you so much! |
2022-12-19 23:13:41 +0100 | opticblast | (~Thunderbi@172.58.82.193) (Client Quit) |
2022-12-19 23:13:49 +0100 | <EvanR> | that's the most inefficient string of multiplications ever |
2022-12-19 23:14:09 +0100 | <voidzero> | I don't have a professor but I'm really glad you guys exist <3 |
2022-12-19 23:15:06 +0100 | pagnol | (~user@213-205-209-87.ftth.glasoperator.nl) (Ping timeout: 255 seconds) |
2022-12-19 23:15:38 +0100 | <voidzero> | graybeard sysadmin finally taking the time to learn a proper programming language |
2022-12-19 23:16:22 +0100 | <voidzero> | the other day i worked out a fibonacci function and did this together with my 7 year old son |
2022-12-19 23:16:34 +0100 | <voidzero> | I'll save the foldl until later though :-) |
2022-12-19 23:17:04 +0100 | <voidzero> | EvanR, indeed :) |
2022-12-19 23:17:37 +0100 | <voidzero> | I'm working through the book Haskell Programming From First Principles and am not allowing myself to skip exercises |
2022-12-19 23:17:51 +0100 | <Jadesheit[m]> | please teach your son haskell |
2022-12-19 23:18:24 +0100 | <voidzero> | you bet. It's a lot of fun |
2022-12-19 23:18:27 +0100 | Alex_test | (~al_test@94.233.241.57) |
2022-12-19 23:18:43 +0100 | <Jadesheit[m]> | I've heard from people who only learned functional languages and not imperative languages, and I'd love to see what it would turn out to be |
2022-12-19 23:18:46 +0100 | <Jadesheit[m]> | have fun :F |
2022-12-19 23:18:53 +0100 | <Jadesheit[m]> | * have fun :D |
2022-12-19 23:19:32 +0100 | AlexZenon | (~alzenon@94.233.241.57) |
2022-12-19 23:19:43 +0100 | <voidzero> | My only other skill is with zsh scripting. I wrote some cool scripts. There is a lot of similarity between piping commands on the shell, and haskell. |
2022-12-19 23:19:58 +0100 | <voidzero> | xmonad was fun to figure out to the point where i managed to get a working config file |
2022-12-19 23:20:09 +0100 | <Jadesheit[m]> | voidzero: indeed yeah! |
2022-12-19 23:21:20 +0100 | <voidzero> | My functional programming interest first got piqued when I wrote a 24h audio stream in the Liquidsoap language (https://liquidsoap.info/) |
2022-12-19 23:21:52 +0100 | <Jadesheit[m]> | never heard of that haha |
2022-12-19 23:21:53 +0100 | <voidzero> | it streams audio from a filelist and live hosts can connect to it to stream liveshows |
2022-12-19 23:22:01 +0100 | <Jadesheit[m]> | gotta take a look |
2022-12-19 23:22:09 +0100 | <voidzero> | https://github.com/NoAgenda/noagendastream |
2022-12-19 23:22:23 +0100 | <geekosaur> | fwiw you'll find that Puppet is pretty FP oriented |
2022-12-19 23:22:50 +0100 | <geekosaur> | to the extent that it's highly declarative |
2022-12-19 23:23:13 +0100 | <voidzero> | it is? I'm busy moving my stuff over to NixOS. Puppet, I know that from many years ago. Should check it out again. |
2022-12-19 23:24:22 +0100 | jao | (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) (Ping timeout: 252 seconds) |
2022-12-19 23:24:35 +0100 | j4cc3b | (~jeffreybe@pool-74-105-2-138.nwrknj.fios.verizon.net) (Ping timeout: 246 seconds) |
2022-12-19 23:27:40 +0100 | <Reinhilde> | "noagenda" has an agenda. |
2022-12-19 23:30:45 +0100 | <voidzero> | my only interest is to keep the boat afloat, and content wise that's all off topic anyway |
2022-12-19 23:30:56 +0100 | bitmapper | (uid464869@id-464869.lymington.irccloud.com) |
2022-12-19 23:30:58 +0100 | <Reinhilde> | eoe |
2022-12-19 23:34:27 +0100 | thegeekinside | (~thegeekin@189.128.148.159) |
2022-12-19 23:36:21 +0100 | mc47 | (~mc47@xmonad/TheMC47) |
2022-12-19 23:37:37 +0100 | gnalzo | (~gnalzo@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c) (Quit: WeeChat 3.7.1) |
2022-12-19 23:38:24 +0100 | mc47 | (~mc47@xmonad/TheMC47) (Remote host closed the connection) |
2022-12-19 23:41:21 +0100 | drvitek | (~drvitek@2601:85:c300:7940:6d22:5284:fc40:3019) |
2022-12-19 23:41:51 +0100 | gurkenglas | (~gurkengla@p548ac72e.dip0.t-ipconnect.de) |
2022-12-19 23:44:23 +0100 | fizbin | (~fizbin@user/fizbin) |
2022-12-19 23:46:10 +0100 | talismanick | (~talismani@76.133.152.122) (Remote host closed the connection) |
2022-12-19 23:53:47 +0100 | trev | (~trev@user/trev) (Remote host closed the connection) |
2022-12-19 23:54:58 +0100 | talismanick | (~talismani@76.133.152.122) |
2022-12-19 23:56:46 +0100 | quazimodo | (~quazimodo@122-199-39-221.ip4.superloop.com) |