Home liberachat/#haskell: Logs Calendar

Logs on 2022-01-08 (liberachat/#haskell)

00:00:10 <lechner> sorry, got confused with Data.Versions
00:01:50 <lechner> thanks!
00:02:42 <sshine> I can see that both packages 'semver' and 'salve' address resolving version constraint expressions, like these: https://hackage.haskell.org/package/salve-1.0.11/docs/Salve.html -- I don't think that those constraint expressions are restricted to SemVer, but I guess that's another feature you'd wanna have in a semver library.
00:02:52 × max22- quits (~maxime@2a01cb088335980011bb54fd9cdf5176.ipv6.abo.wanadoo.fr) (Remote host closed the connection)
00:03:24 × jonathanx quits (~jonathan@h-178-174-176-109.a357.priv.bahnhof.se) (Read error: Connection reset by peer)
00:03:58 kupi joins (uid212005@id-212005.hampstead.irccloud.com)
00:04:58 jonathanx joins (~jonathan@h-178-174-176-109.A357.priv.bahnhof.se)
00:05:20 <sshine> I'm not sure why they all defer from using Data.Version as their representation. :)
00:05:24 × jonathanx quits (~jonathan@h-178-174-176-109.A357.priv.bahnhof.se) (Read error: Connection reset by peer)
00:05:44 jonathanx joins (~jonathan@h-178-174-176-109.A357.priv.bahnhof.se)
00:06:23 <sshine> (since some of them explicitly allow for expressing messy version schemes, too.)
00:06:45 <lechner> Salve has a great summary of competing modules. thanks for that pointer!
00:08:25 × vicfred quits (~vicfred@user/vicfred) (Quit: Leaving)
00:08:54 × jonathanx quits (~jonathan@h-178-174-176-109.A357.priv.bahnhof.se) (Remote host closed the connection)
00:09:15 jonathanx joins (~jonathan@h-178-174-176-109.A357.priv.bahnhof.se)
00:09:59 bitdex joins (~bitdex@gateway/tor-sasl/bitdex)
00:11:53 raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
00:12:15 <[itchyjunk]> for my (+++) function, i can take existing list an add an element from the new list to it then apply (+++) to the remainder of the list
00:12:16 <[itchyjunk]> https://bpa.st/SC3A
00:12:23 <[itchyjunk]> This kinda made sense in my head
00:12:38 <[itchyjunk]> Is that the right approach but wrong syntax?
00:13:29 <[itchyjunk]> oh woops i see one error
00:13:45 <geekosaur> note that Cons appends to the left, not the right
00:14:01 <geekosaur> or said otherwise, prepends instead of appends
00:14:12 <[itchyjunk]> (https://bpa.st/DR5A
00:14:14 <[itchyjunk]> edited
00:14:56 <[itchyjunk]> I compiles but with a warning about redundant pattern match but i guess i will worry about it in a second if this works
00:15:35 <geekosaur> you need to move the `Nil Nil` case above the other two
00:15:59 <[itchyjunk]> Oh hmm
00:16:26 <geekosaur> otherwise one of those cases will match with `_` matching against Nil
00:17:33 Hayek joins (~xxx@rrcs-173-196-3-254.west.biz.rr.com)
00:18:56 <[itchyjunk]> hmm _ Nil and Nil _ matches so Nil Nil ends up being a subset of one of those matches so it's considered redundent?
00:19:24 coot joins (~coot@89-64-85-93.dynamic.chello.pl)
00:19:42 × bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 276 seconds)
00:21:37 × xff0x quits (~xff0x@2001:1a81:525f:5800:6161:847e:32a5:3ca7) (Ping timeout: 240 seconds)
00:21:37 <sub0> yes, it will never be reached
00:22:20 <[itchyjunk]> happy that the idea for (+++) (Cons y x) xy worked out! finally feels like i'm making some progress
00:22:23 <EvanR> an example where order of definitions matters
00:22:40 <sshine> you don't really need the 'Nil Nil = Nil' case, since 'x Nil' will be 'x', and 'Nil y' will be 'y', which are both general cases of 'Nil Nil = Nil' :)
00:22:50 xff0x joins (~xff0x@2001:1a81:525f:5800:95c3:4d9e:7693:e3c)
00:23:09 <[itchyjunk]> sshine, ah.. true
00:23:20 × esoca123 quits (uid534098@id-534098.tinside.irccloud.com) (Quit: Connection closed for inactivity)
00:23:42 × DNH quits (~DNH@2a02:8108:1100:16d8:ad26:5398:3e1f:d97d) (Quit: My MacBook has gone to sleep. ZZZzzz…)
00:24:31 <sshine> > (Cons 1 (Cons 2 (Cons 3 Nil))) +++ (Cons 4 (Cons 5 (Cons 6 Nil)))
00:24:32 <sshine> Cons 6 (Cons 5 (Cons 4 (Cons 1 (Cons 2 (Cons 3 Nil)))))
00:24:32 <lambdabot> error:
00:24:32 <lambdabot> • Data constructor not in scope: Cons :: t6 -> t0 -> a b c
00:24:32 <lambdabot> • Perhaps you meant one of these:
00:25:00 <sshine> [itchyjunk], I'd probably have expected (Cons 1 (Cons 2 (Cons 3 (Cons 4 (Cons 5 (Cons 6 Nil))))))
00:25:07 × coot quits (~coot@89-64-85-93.dynamic.chello.pl) (Quit: coot)
00:26:16 n3rdy1 joins (~n3rdy1@2600:1700:4570:3480::41)
00:26:48 <geekosaur> I pointed out that problem a bit earlier
00:26:58 <[itchyjunk]> hmmm
00:27:02 <[itchyjunk]> its a feature for now :x
00:27:06 <sshine> ;-)
00:27:16 bitdex joins (~bitdex@gateway/tor-sasl/bitdex)
00:29:15 <sshine> [itchyjunk], (+++) (Cons x xs) ys = Cons x (xs +++ ys)
00:29:39 <[itchyjunk]> yup that's what i just tried!
00:30:07 <sshine> cool
00:30:26 machinedgod joins (~machinedg@24.105.81.50)
00:31:26 × xb0o2 quits (~xb0o2@user/xb0o2) (Quit: Client closed)
00:31:32 <[itchyjunk]> wait no, what did i do
00:34:48 <sshine> [itchyjunk], could also be written: (+++) (Cons x xs) ys = Cons x ((+++) xs ys)
00:36:05 <[itchyjunk]> i thought this would work but i am confused
00:36:06 <[itchyjunk]> (+++) (Cons x xs) ys = (+++) xs (Cons x ys)
00:36:14 <[itchyjunk]> take each element of first list and add it to the second list
00:37:35 <geekosaur> wrong order
00:37:42 <sshine> [itchyjunk], if you run it by hand it'll make sense
00:38:45 [itchyjunk] clears dusts off hand
00:38:50 <sshine> [itchyjunk], [1,2,3] ++ [4,5,6] ~> 1:([2,3] ++ [4,5,6]) etc.
00:38:54 × jonathanx quits (~jonathan@h-178-174-176-109.A357.priv.bahnhof.se) (Remote host closed the connection)
00:39:07 <[itchyjunk]> sshine, ah right
00:39:15 <sshine> [itchyjunk], the mixture of Cons and +++ might seem more confusing
00:39:29 × waleee quits (~waleee@h-98-128-229-110.na.cust.bahnhof.se) (Ping timeout: 256 seconds)
00:39:37 jonathanx joins (~jonathan@h-178-174-176-109.A357.priv.bahnhof.se)
00:39:51 <[itchyjunk]> so (+++) (Cons x xs) ys = Cons x ((+++) xs ys)
00:40:44 <[itchyjunk]> okay, makes sense
00:41:17 <[itchyjunk]> ah thats what you said above
00:41:43 waleee joins (~waleee@2001:9b0:21d:fc00:398f:b003:b90d:acf4)
00:42:14 <sshine> but... Cons 1 (Cons 2 (Cons 3 Nil)) +++ Cons 4 (Cons 5 (Cons 6 Nil)) ~> Cons 1 (Cons 2 (Cons 3 Nil) +++ Cons 4 (Cons 5 (Cons 6 Nil))) ~> Cons 1 (Cons 2 (Cons 3 Nil +++ Cons 4 (Cons 5 (Cons 6 Nil)))) ~> Cons 1 (Cons 2 (Cons 3 (Nil +++ Cons 4 (Cons 5 (Cons 6 Nil))))) ~> at which point you're in one of the base cases with Nil on the left.
00:42:31 <sshine> (this looks better with one rewrite per line)
00:42:37 × doyougnu quits (~doyougnu@c-73-25-202-122.hsd1.or.comcast.net) (Ping timeout: 240 seconds)
00:44:19 <sshine> [itchyjunk], btw, if you add {-# LANGUAGE DeriveFoldable #-}, you can add 'deriving (Show, Foldable)', after which a bunch of standard library list operators will work on your list.
00:45:01 <sshine> e.g. > 2 `elem` Cons 1 (Cons 2 (Cons 3 Nil))
00:45:01 <sshine> True
00:45:09 <sshine> :t elem
00:45:09 <lambdabot> (Foldable t, Eq a) => a -> t a -> Bool
00:45:22 <[itchyjunk]> right i learned about the `deriving Show`. I assume it's similar to the concept of inheretence or implementing a interface or somesuch
00:46:45 <sshine> or: > sum (Cons 1 (Cons 2 (Cons 3 Nil)))
00:46:45 <sshine> 6
00:48:52 <sshine> it's kind of like automatically implementing an interface, yes
00:50:46 <sshine> I think one of the auto-generated traits/type-classes/interfaces you often see in a lot of languages are JSON serializers/de-serializers. so all you need is define a data-type, and many serialize/deserialize libraries can generically produce them based on type information on the data type's fields.
00:51:08 <sshine> and in haskell you can derive a lot of other type classes, too
00:51:30 <sshine> like Foldable and Functor :)
00:53:24 <geekosaur> you should probably do the third part of the problem before doing that, though
00:53:36 <sshine> what problem?
00:53:43 <geekosaur> although you just gave yourself a big hint as to how to do it, by doing this wrong
00:53:54 × jonathanx quits (~jonathan@h-178-174-176-109.A357.priv.bahnhof.se) (Remote host closed the connection)
00:54:14 jonathanx joins (~jonathan@h-178-174-176-109.A357.priv.bahnhof.se)
00:54:19 <geekosaur> http://www.cas.mcmaster.ca/~dalvescb/LH_Week05_Exercises.pdf
00:54:45 <[itchyjunk]> hmm
00:54:47 <geekosaur> they did part one earlier, this is part 2. part 3 is myReverse
00:54:56 × sm1 quits (~sm@plaintextaccounting/sm) (Quit: Reconnecting)
00:55:02 <sshine> oh, right :P
00:55:11 sm1 joins (~sm@plaintextaccounting/sm)
00:55:12 <[itchyjunk]> yeah i am banging my head on the myReverse
00:55:14 <sshine> +++ done wrong is myReverse done half right, I guess :P
00:55:22 <geekosaur> yep
00:55:37 <geekosaur> go back and look how your proposed solution to (+++) went wrong
00:55:45 <geekosaur> then do the whole thing the same wrong way :)
00:55:53 <[itchyjunk]> oh should i be using (+++)? ahh i was thinking about it without +++
00:56:02 <geekosaur> no, you don't want (+++) here
00:56:17 sm1 is now known as sm
00:56:18 <geekosaur> but you reversed the first part of the list with the way you were mis-doing (+++)
00:56:34 <geekosaur> so think about what you did and why it reversed it, and you have the answer
00:56:42 × acidjnk_new3 quits (~acidjnk@p200300d0c7271e73e4c690103e77be5f.dip0.t-ipconnect.de) (Ping timeout: 268 seconds)
00:56:42 × acidjnk quits (~acidjnk@p200300d0c7271e73e4c690103e77be5f.dip0.t-ipconnect.de) (Ping timeout: 268 seconds)
01:00:06 <geekosaur> and you may want to think about a helper function here
01:01:20 <sshine> [itchyjunk], if you start with: myReverse (Cons x xs) = ..., and you know that the last element should be the first, then putting the last element in '...' is kinda hard, because it's at the far end of the linked list.
01:03:25 <[itchyjunk]> i keeps comming and going from my head. it has something to do with creating a new list Nil and adding elements to it, first 1 then 2 then 3 etc so it would be 3 2 1 Nil or somesuch. but it keeps escaping me
01:03:41 <geekosaur> you're on the right track
01:03:47 <[itchyjunk]> hmmmmmm
01:03:50 <geekosaur> again, go look at what you did *wrong* earlier
01:04:59 × FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Killed (NickServ (Forcing logout FinnElija -> finn_elija)))
01:04:59 finn_elija joins (~finn_elij@user/finn-elija/x-0085643)
01:04:59 finn_elija is now known as FinnElija
01:05:12 <sshine> [itchyjunk], if you do: myReverse (Cons x xs) = let theEnd = Cons x Nil in ..., then you did add x to Nil where it belongs, but it isn't very recursive. i.e., when you make a call to 'myReverse xs' to reverse the tail, where do you put 'theEnd'?
01:05:24 × jonathanx quits (~jonathan@h-178-174-176-109.A357.priv.bahnhof.se) (Remote host closed the connection)
01:05:43 jonathanx joins (~jonathan@h-178-174-176-109.A357.priv.bahnhof.se)
01:06:32 <sshine> [itchyjunk], surely you can't add x on the second iteration to Nil also; then you'll have a bunch of 'Cons <x/y/z> Nil' cells that aren't linked.
01:09:05 <sshine> [itchyjunk], what if the function had the type myReverse' :: ItchyList a -> ItchyList a -> ItchyList a -> ItchyList a? so: myReverse' xs ys tmp; could you make use of a placeholder between recursions?
01:09:16 <sshine> err
01:09:19 <sshine> I'm tired
01:09:31 <sshine> [itchyjunk], what if the function had the type myReverse' :: ItchyList a -> ItchyList a -> ItchyList a? so: myReverse' xs tmp; could you make use of a placeholder between recursions?
01:10:39 <[itchyjunk]> oh a helper function that uses a temporary type to help reverse?
01:10:47 <sshine> a temporary argument yes
01:11:27 × Tuplanolla quits (~Tuplanoll@91-159-68-11.elisa-laajakaista.fi) (Quit: Leaving.)
01:12:57 × n3rdy1 quits (~n3rdy1@2600:1700:4570:3480::41) (Ping timeout: 240 seconds)
01:14:05 × xkuru quits (~xkuru@user/xkuru) (Read error: Connection reset by peer)
01:14:14 × CiaoSen quits (~Jura@p200300c957347b002a3a4dfffe84dbd5.dip0.t-ipconnect.de) (Ping timeout: 252 seconds)
01:19:16 <[itchyjunk]> hmm i was hoping this would work
01:19:17 <[itchyjunk]> https://bpa.st/D2LQ
01:19:27 <[itchyjunk]> but seems like i have some logical error somewhere
01:19:55 <[itchyjunk]> oh i see the bug
01:20:21 <sshine> what's the bug?
01:20:31 <[itchyjunk]> helper Nil _ = Nil
01:20:42 <sub0> no
01:20:43 <sshine> what's the problem there?
01:20:47 <[itchyjunk]> so when the recursion turns my first list to Nil, it turns the whole thing into Nil
01:20:57 <sshine> yeah, it reverses the entire list, then throws it out at the end. :D
01:20:59 <sub0> yes (my mistake, I thought that was your solution, not bug)
01:21:18 <[itchyjunk]> well sometimes my solution and bugs are equivalent
01:21:44 <sshine> so it's true that the reverse of Nil is Nil.
01:21:49 <[itchyjunk]> https://bpa.st/LJLQ
01:21:53 <[itchyjunk]> This seems to work, right?
01:22:20 × eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
01:22:20 <sshine> but your base case of 'helper Nil ys' is used for two things now: both for reversing the empty list, and for terminating the recursion on non-empty lists.
01:22:39 eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
01:22:50 <sshine> [itchyjunk], you don't actually need 'myHelper Nil = Nil'. this is a special case of helper.
01:23:07 <glguy> [itchyjunk]: yes, that looks to have fixed it
01:23:25 × waleee quits (~waleee@2001:9b0:21d:fc00:398f:b003:b90d:acf4) (Ping timeout: 240 seconds)
01:23:31 <[itchyjunk]> sshine, oh myReverse Nil = Nil is redundent because of how the helper behaves?
01:23:48 <sub0> yes, it handles the Nil case
01:23:51 <glguy> [itchyjunk]: you also have some redundancy in (+++)
01:24:12 × sub0 quits (~bc8147f2@cerf.good1.com) (Quit: CGI:IRC (Error))
01:24:16 <[itchyjunk]> yeah having hard time seeing all the redundancy but hopefully it's something that becomes more obvious over time
01:24:31 sub0 joins (~bc8147f2@cerf.good1.com)
01:24:32 <sshine> [itchyjunk], myReverse Nil ~> helper Nil Nil ~> Nil (with ys = Nil)
01:24:37 × Hayek quits (~xxx@rrcs-173-196-3-254.west.biz.rr.com) (Ping timeout: 240 seconds)
01:24:37 <sub0> [itchyjunk], it is also common to make the helper function a local function named go, ie, myReverse xs = go xs [] where go ...
01:25:24 × jonathanx quits (~jonathan@h-178-174-176-109.A357.priv.bahnhof.se) (Remote host closed the connection)
01:25:25 <glguy> though it's nice, especially while learning or debugging, to keep the definition at the top-level so you can experiment with it in ghci
01:25:28 <[itchyjunk]> oh right, implicit recursion and local functions stuff is another thing i need to work on
01:25:42 jonathanx joins (~jonathan@h-178-174-176-109.A357.priv.bahnhof.se)
01:25:49 n3rdy1 joins (~n3rdy1@2600:1700:4570:3480:1b88:50f:dae0:9293)
01:26:13 <sshine> [itchyjunk], https://bpa.st/SPXA
01:26:24 waleee joins (~waleee@h-98-128-229-110.NA.cust.bahnhof.se)
01:26:45 <sshine> [itchyjunk], also, if you derive Foldable, 'myReverse = foldl (flip Cons) Nil' :D
01:27:21 <[itchyjunk]> oh you can do a full fledged definition right there? didn't realize
01:27:47 <sshine> [itchyjunk], yep, 'myReverse xs = ...' is just syntax sugar for 'myReverse = \xs -> ...'
01:28:00 <glguy> [itchyjunk]: something that might surprise you is that the 'a's on line 16 and line 20 are different in that paste
01:28:28 <glguy> the fact that it's a local definition doesn't make them more connected than if they were both top-level definitions
01:28:33 <sshine> glguy, that statement sounds obviously true for the wrong reason :P
01:28:38 <[itchyjunk]> hmmm
01:29:01 <sshine> [itchyjunk], so if you change the ItchyList a -> ItchyList a
01:29:01 <sub0> they are connected in the sense that local helper function can directly access myReverse's arguments
01:29:23 <sshine> [itchyjunk], if you change the 'ItchyList a -> ItchyList a' into 'ItchyList b -> ItchyList b', then you can keep the 'a's around on line 20.
01:29:59 lbseale joins (~ep1ctetus@user/ep1ctetus)
01:30:03 <glguy> the fact that type variables are locally scoped to a type signature even in a nested context is just surprising to most people and can make for confusing error messages later
01:30:22 <sshine> glguy, that's a good point.
01:30:59 <sshine> [itchyjunk], I made a lazy choice of not renaming 'myReverse x = helper x Nil' into 'myReverse z = helper z Nil' to avoid shadowing variable names. the outer 'x' is not the same as the inner 'x'.
01:34:03 <sshine> [itchyjunk], are you doing trees now?
01:34:55 notzmv joins (~zmv@user/notzmv)
01:35:03 <glguy> Is there a specific problemset?
01:35:12 × eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
01:35:22 <[itchyjunk]> I haven't started on it. idk if i am ready for trees
01:35:24 <sshine> 18:58:47 <[itchyjunk]> the full problem is here :http://www.cas.mcmaster.ca/~dalvescb/LH_Week05_Exercises.pdf
01:35:36 <[itchyjunk]> i stumbled upon this googling `haskell zip exercise`
01:35:36 <sshine> [itchyjunk], lists are just very right-biased trees.
01:35:42 <[itchyjunk]> :D
01:36:05 <[itchyjunk]> right, ive heard of that.. graphs are somethign i need to eventually learn but seems a bit intimidating
01:36:11 <sshine> you've been doing trees all along 🤯
01:37:23 <glguy> This binary tree problem kind of leaves it to you to decide what a binary tree is, I guess.
01:38:01 <sshine> data UnaryTree a = Leaf | Branch a (UnaryTree a)
01:38:56 <[itchyjunk]> thats almost identical to my list
01:39:09 <glguy> what's the difference?
01:39:17 eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
01:39:17 <[itchyjunk]> hmm
01:39:38 <[itchyjunk]> thats identical to my list
01:40:14 <sshine> then lists must be unary trees, according to my definition.
01:40:24 × jonathanx quits (~jonathan@h-178-174-176-109.A357.priv.bahnhof.se) (Remote host closed the connection)
01:40:47 <EvanR> if you can inductively define a graph you can inductively define anything, like chuck norris
01:40:49 jonathanx joins (~jonathan@h-178-174-176-109.A357.priv.bahnhof.se)
01:41:06 <glguy> You wouldn't inductively define a car
01:42:01 <sshine> data ChuckNorris = Chuck ChuckNorris | Norris -- how much Chuck would a ChuckNorris Chuck if a ChuckNorris could Chuck (Chuck (Chuck ...))
01:42:23 EvanR chucks Norris
01:43:49 × xff0x quits (~xff0x@2001:1a81:525f:5800:95c3:4d9e:7693:e3c) (Ping timeout: 240 seconds)
01:44:45 <sshine> [itchyjunk], data ConcatList a = Nil | Single a | Concat (ConcatList a) (ConcatList a)
01:45:03 xff0x joins (~xff0x@2001:1a81:525f:5800:a604:5a64:a22b:91db)
01:45:11 <sshine> [itchyjunk], this is not a tree, because it says it's a list.
01:45:51 × burnsidesLlama quits (~burnsides@dhcp168-021.wadham.ox.ac.uk) (Remote host closed the connection)
01:46:23 burnsidesLlama joins (~burnsides@client-8-64.eduroam.oxuni.org.uk)
01:46:24 × nunggu quits (~q@gateway/tor-sasl/nunggu) (Remote host closed the connection)
01:46:54 nunggu joins (~q@gateway/tor-sasl/nunggu)
01:47:11 <EvanR> data ThisIsNotAType
01:47:38 <EvanR> coincidentally, it is false (Void)
01:48:46 × Erutuon quits (~Erutuon@user/erutuon) (Ping timeout: 256 seconds)
01:48:52 <sshine> [itchyjunk], are you doing take/drop instead??
01:49:13 <[itchyjunk]> no, not doing anything as of yet :D
01:50:53 × burnsidesLlama quits (~burnsides@client-8-64.eduroam.oxuni.org.uk) (Ping timeout: 256 seconds)
01:51:30 × geranim0 quits (~geranim0@modemcable242.171-178-173.mc.videotron.ca) (Remote host closed the connection)
01:51:39 Erutuon joins (~Erutuon@user/erutuon)
01:55:54 × jonathanx quits (~jonathan@h-178-174-176-109.A357.priv.bahnhof.se) (Remote host closed the connection)
01:56:41 jonathanx joins (~jonathan@h-178-174-176-109.A357.priv.bahnhof.se)
01:57:48 <sshine> [itchyjunk], if you feel like tree exercises are too daunting, you can also do these list exercises: https://gist.github.com/sshine/1c909e27149dfd6081e99ef39cb3a7e1 :p
01:58:37 × polyphem quits (~rod@2a02:810d:640:776c:e450:3ca3:b389:687a) (Ping timeout: 240 seconds)
01:59:17 <[itchyjunk]> hmm
01:59:40 polyphem joins (~rod@2a02:810d:640:776c:e450:3ca3:b389:687a)
02:01:37 × Gurkenglas quits (~Gurkengla@dslb-002-203-144-204.002.203.pools.vodafone-ip.de) (Ping timeout: 240 seconds)
02:05:57 × werneta quits (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) (Ping timeout: 240 seconds)
02:08:04 werneta joins (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net)
02:11:54 × jonathanx quits (~jonathan@h-178-174-176-109.A357.priv.bahnhof.se) (Remote host closed the connection)
02:12:15 jonathanx joins (~jonathan@h-178-174-176-109.A357.priv.bahnhof.se)
02:14:54 harveypwca joins (~harveypwc@2601:246:c180:a570:3828:d8:e523:3f67)
02:15:35 califax- joins (~califax@user/califx)
02:16:38 jonathanx_ joins (~jonathan@h-178-174-176-109.A357.priv.bahnhof.se)
02:17:25 × bontaq quits (~user@ool-45779fe5.dyn.optonline.net) (Ping timeout: 240 seconds)
02:17:41 falafel joins (~falafel@2603-8000-d800-688c-557f-1601-d4ed-ac14.res6.spectrum.com)
02:19:57 × jonathanx quits (~jonathan@h-178-174-176-109.A357.priv.bahnhof.se) (Ping timeout: 240 seconds)
02:19:57 × califax quits (~califax@user/califx) (Ping timeout: 276 seconds)
02:19:58 califax- is now known as califax
02:26:51 falafel_ joins (~falafel@2603-8000-d800-688c-b16d-a5e8-00d0-69ce.res6.spectrum.com)
02:29:57 × falafel quits (~falafel@2603-8000-d800-688c-557f-1601-d4ed-ac14.res6.spectrum.com) (Ping timeout: 240 seconds)
02:30:18 neurocyte09174 joins (~neurocyte@IP-094046083160.dynamic.medianet-world.de)
02:30:18 × neurocyte09174 quits (~neurocyte@IP-094046083160.dynamic.medianet-world.de) (Changing host)
02:30:18 neurocyte09174 joins (~neurocyte@user/neurocyte)
02:31:55 × perro_ quits (~perro@072-191-245-069.res.spectrum.com) (Read error: Connection reset by peer)
02:32:17 × neurocyte0917 quits (~neurocyte@user/neurocyte) (Ping timeout: 240 seconds)
02:32:17 neurocyte09174 is now known as neurocyte0917
02:33:23 × machinedgod quits (~machinedg@24.105.81.50) (Ping timeout: 256 seconds)
02:33:54 × jonathanx_ quits (~jonathan@h-178-174-176-109.A357.priv.bahnhof.se) (Remote host closed the connection)
02:33:57 dyeplexer joins (~dyeplexer@user/dyeplexer)
02:34:12 jonathanx_ joins (~jonathan@h-178-174-176-109.A357.priv.bahnhof.se)
02:34:13 × xff0x quits (~xff0x@2001:1a81:525f:5800:a604:5a64:a22b:91db) (Ping timeout: 240 seconds)
02:35:05 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 256 seconds)
02:36:16 xff0x joins (~xff0x@2001:1a81:5298:9f00:76ce:451:456a:7f10)
02:43:19 falafel__ joins (~falafel@2603-8000-d800-688c-b16d-a5e8-00d0-69ce.res6.spectrum.com)
02:43:33 × falafel_ quits (~falafel@2603-8000-d800-688c-b16d-a5e8-00d0-69ce.res6.spectrum.com) (Read error: Connection reset by peer)
02:46:08 falafel_ joins (~falafel@2603-8000-d800-688c-80eb-78f2-5772-65fe.res6.spectrum.com)
02:47:08 wroathe joins (~wroathe@206-55-188-8.fttp.usinternet.com)
02:47:08 × wroathe quits (~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host)
02:47:08 wroathe joins (~wroathe@user/wroathe)
02:48:24 × jonathanx_ quits (~jonathan@h-178-174-176-109.A357.priv.bahnhof.se) (Remote host closed the connection)
02:48:41 jonathanx_ joins (~jonathan@h-178-174-176-109.a357.priv.bahnhof.se)
02:49:37 × falafel__ quits (~falafel@2603-8000-d800-688c-b16d-a5e8-00d0-69ce.res6.spectrum.com) (Ping timeout: 240 seconds)
02:49:56 BrokenClutch joins (~pioneer@2804:d41:c292:6c00:33d8:d2f1:d8af:153e)
02:50:19 <BrokenClutch> Man, I want to die. Is this shit too bad: https://gitlab.com/UnrelatedMicrowave/stm-test
02:50:24 <BrokenClutch> Am I on the right way?
02:50:54 × jonathanx_ quits (~jonathan@h-178-174-176-109.a357.priv.bahnhof.se) (Remote host closed the connection)
02:51:18 jonathanx_ joins (~jonathan@h-178-174-176-109.A357.priv.bahnhof.se)
02:52:24 × jonathanx_ quits (~jonathan@h-178-174-176-109.A357.priv.bahnhof.se) (Remote host closed the connection)
02:52:45 jonathanx_ joins (~jonathan@h-178-174-176-109.A357.priv.bahnhof.se)
02:53:28 <EvanR> that's one way to do it
02:55:09 doyougnu joins (~doyougnu@c-73-25-202-122.hsd1.or.comcast.net)
02:56:32 <BrokenClutch> This shit gave me a headache, gonna play vidjo gemes
02:56:37 <EvanR> I would ask what you're really trying to do, but I know that you're actually trying to make a game invol&
02:56:49 <EvanR> involving event handling, so
02:57:05 <EvanR> I got nothing
02:57:54 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 256 seconds)
02:58:09 wroathe joins (~wroathe@206-55-188-8.fttp.usinternet.com)
02:58:09 × wroathe quits (~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host)
02:58:09 wroathe joins (~wroathe@user/wroathe)
02:59:19 ouestbillie joins (~gallup@192-222-138-215.qc.cable.ebox.net)
03:06:17 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 240 seconds)
03:07:50 <monochrom> For me it's video games (I mean as a player! not as a dev) and learning more math.
03:08:13 <monochrom> Programming is too hard! Playing AOE4 and learning math are easier.
03:13:35 <[itchyjunk]> I'm learning some Halo Infinite currently.
03:13:57 <[itchyjunk]> Their ranking system is totally busted though. Surprised multi 100 million games can't have a decent ranking system
03:14:56 wroathe joins (~wroathe@206-55-188-8.fttp.usinternet.com)
03:14:56 × wroathe quits (~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host)
03:14:56 wroathe joins (~wroathe@user/wroathe)
03:15:46 <EvanR> no money left after spending it on army of developers
03:16:19 <[itchyjunk]> No idea what the spent it on. Has 5 maps, they released campaign seperately
03:16:20 <EvanR> have to get ranking system from the bargain bin
03:16:33 <[itchyjunk]> They are paying streamers on twitch a lot of money and they are releasing non stop skins
03:19:17 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 256 seconds)
03:19:33 <EvanR> 🤑
03:20:03 <EvanR> (hint ranking system not required for 🤑), anyway, back to haskell!!!!!!
03:29:02 × sirlensalot quits (~sirlensal@ool-44c5f8c9.dyn.optonline.net) (Quit: sirlensalot)
03:29:38 × waleee quits (~waleee@h-98-128-229-110.NA.cust.bahnhof.se) (Ping timeout: 256 seconds)
03:33:54 × jonathanx_ quits (~jonathan@h-178-174-176-109.A357.priv.bahnhof.se) (Remote host closed the connection)
03:34:12 jonathanx_ joins (~jonathan@h-178-174-176-109.A357.priv.bahnhof.se)
03:34:46 × BrokenClutch quits (~pioneer@2804:d41:c292:6c00:33d8:d2f1:d8af:153e) (Quit: Leaving.)
03:34:53 deadmarshal joins (~deadmarsh@95.38.113.27)
03:38:33 × lbseale quits (~ep1ctetus@user/ep1ctetus) (Ping timeout: 256 seconds)
03:39:16 × deadmarshal quits (~deadmarsh@95.38.113.27) (Ping timeout: 256 seconds)
03:45:17 × td_ quits (~td@94.134.91.64) (Ping timeout: 240 seconds)
03:47:30 td_ joins (~td@94.134.91.205)
03:48:57 × falafel_ quits (~falafel@2603-8000-d800-688c-80eb-78f2-5772-65fe.res6.spectrum.com) (Ping timeout: 240 seconds)
03:52:32 wroathe joins (~wroathe@206-55-188-8.fttp.usinternet.com)
03:52:32 × wroathe quits (~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host)
03:52:32 wroathe joins (~wroathe@user/wroathe)
04:01:22 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 256 seconds)
04:02:36 × cosimone quits (~user@2001:b07:ae5:db26:c24a:d20:4d91:1e20) (Remote host closed the connection)
04:03:11 cosimone joins (~user@2001:b07:ae5:db26:c24a:d20:4d91:1e20)
04:09:02 wroathe joins (~wroathe@206-55-188-8.fttp.usinternet.com)
04:09:02 × wroathe quits (~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host)
04:09:02 wroathe joins (~wroathe@user/wroathe)
04:12:19 wyrd joins (~wyrd@gateway/tor-sasl/wyrd)
04:13:41 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 256 seconds)
04:14:18 × cosimone quits (~user@2001:b07:ae5:db26:c24a:d20:4d91:1e20) (Remote host closed the connection)
04:14:49 × [itchyjunk] quits (~itchyjunk@user/itchyjunk/x-7353470) (Ping timeout: 256 seconds)
04:14:52 cosimone joins (~user@2001:b07:ae5:db26:c24a:d20:4d91:1e20)
04:17:11 <EvanR> newtype Foo = Foo (Vector Bar) deriving Foldable
04:17:46 sirlensalot joins (~sirlensal@ool-44c5f8c9.dyn.optonline.net)
04:18:51 [itchyjunk] joins (~itchyjunk@user/itchyjunk/x-7353470)
04:19:04 <EvanR> err. newtype Foo a = Foo (Vector Int) deriving Foldable
04:19:29 <EvanR> length (Foo (V.fromList [1,2,3,4])), is zero not 4...
04:25:19 clownpi3c3 joins (~clownpi3c@94.50.183.196)
04:28:24 × jonathanx_ quits (~jonathan@h-178-174-176-109.A357.priv.bahnhof.se) (Remote host closed the connection)
04:28:50 jonathanx_ joins (~jonathan@h-178-174-176-109.A357.priv.bahnhof.se)
04:35:09 × ProfSimm quits (~ProfSimm@87.227.196.109) (Remote host closed the connection)
04:36:37 vysn joins (~vysn@user/vysn)
04:38:45 texasmynsted joins (~texasmyns@99.96.221.112)
04:41:40 <texasmynsted> I am looking for a library or something like Gema, http://gema.sourceforge.net/new/Mundie/WhyILoveGema.html, for Haskell. A declarative language to assemble text.
04:41:50 <texasmynsted> I am not sure what to call this.
04:42:25 × rekahsoft quits (~rekahsoft@cpe0008a20f982f-cm64777d666260.cpe.net.cable.rogers.com) (Ping timeout: 250 seconds)
04:45:20 wroathe joins (~wroathe@206-55-188-8.fttp.usinternet.com)
04:45:20 × wroathe quits (~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host)
04:45:20 wroathe joins (~wroathe@user/wroathe)
04:50:06 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 256 seconds)
04:52:48 × wyrd quits (~wyrd@gateway/tor-sasl/wyrd) (Quit: leaving)
04:52:49 dsrt^ joins (~dsrt@wsip-98-188-246-242.mc.at.cox.net)
04:53:03 wyrd joins (~wyrd@gateway/tor-sasl/wyrd)
04:54:40 × wyrd quits (~wyrd@gateway/tor-sasl/wyrd) (Client Quit)
04:56:25 × zebrag quits (~chris@user/zebrag) (Quit: Konversation terminated!)
04:57:52 shapr joins (~user@2601:7c0:c202:5190:7595:a4fe:20d3:7169)
04:57:59 wyrd joins (~wyrd@gateway/tor-sasl/wyrd)
04:58:54 × jonathanx_ quits (~jonathan@h-178-174-176-109.A357.priv.bahnhof.se) (Remote host closed the connection)
04:59:11 jonathanx_ joins (~jonathan@h-178-174-176-109.a357.priv.bahnhof.se)
05:03:40 pagnol joins (~user@014198154145.ctinets.com)
05:05:46 × Midjak quits (~Midjak@may53-1-78-226-116-92.fbx.proxad.net) (Quit: This computer has gone to sleep)
05:06:08 <pagnol> There's a Rust crate called sqlx which provides a macro that validates SQL by sending it to a running dbms at compile time. Does anyone know if this has been done for Haskell somewhere?
05:06:32 × raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 256 seconds)
05:06:58 <pagnol> (it also adds type safety in addition to validating)
05:08:40 Jing joins (~hedgehog@2604:a840:3::103c)
05:12:51 <Inst> i hope you guys don't mind if I troll?
05:13:01 <Inst> dialogedFileOpen :: IO (Maybe Handle)
05:13:01 <Inst> dialogedFileOpen = sequence ( sequence (openFilePath >>= \iOremoved -> pure (iOremoved >>= \filePath -> pure (openFile filePath ReadMode))) >>= \mIOIOH -> pure (join mIOIOH))
05:13:10 <Inst> which typechecks
05:13:22 <Inst> dialogedFileOpenbradrnSanity :: IO (Maybe (IOMode -> IO Handle))
05:13:22 <Inst> dialogedFileOpenbradrnSanity = (fmap (fmap openFile) openFilePath)
05:13:39 <Inst> openFilePath is IO (Maybe String)
05:13:53 <Inst> ReadMode is a data constructor of type IOMode
05:16:29 <Inst> it's a troll, because this isn't any code of any importance, just me hacking through insane and improbable haskell situations that shouldn't occur with proper design patterns
05:23:15 × kupi quits (uid212005@id-212005.hampstead.irccloud.com) (Quit: Connection closed for inactivity)
05:26:17 BrokenClutch joins (~pioneer@2804:d41:c292:6c00:33d8:d2f1:d8af:153e)
05:28:03 simpleauthority joins (~simpleaut@user/simpleauthority)
05:29:26 × wrengr quits (~wrengr@150.12.83.34.bc.googleusercontent.com) (Ping timeout: 252 seconds)
05:29:46 wrengr joins (~wrengr@150.12.83.34.bc.googleusercontent.com)
05:30:09 <EvanR> as one does
05:38:28 <Inst> okay
05:38:31 <Inst> got a working version
05:39:10 <Inst> dialogedFileOpen = join (fmap sequence ((fmap.fmap) (rapply ReadMode) ((fmap.fmap) openFile openFilePath)))
05:39:28 <Inst> rapply y p = p y
05:39:43 <Inst> do you know if there's an actual built-in / standard way for haskell to force function application to the left?
05:40:49 <EvanR> there is a standardish operator to do function application backwards
05:40:55 <Inst> oh
05:40:56 <Inst> &
05:40:58 <EvanR> but it's more idiomatic to do it the right way
05:41:10 <Inst> are you sure monad transformers work on the IO type?
05:41:12 <EvanR> =<< helps with that in monadic code
05:42:04 <EvanR> <=< if you're ultimately pointless
05:42:29 <EvanR> kleisli fish
05:43:24 <EvanR> :k StateT Char IO Int
05:43:25 <lambdabot> *
05:43:33 <EvanR> @botsnack
05:43:33 <lambdabot> :)
05:43:47 <Inst> @botsnack
05:43:47 <lambdabot> :)
05:44:04 <Inst> is there any point to what I'm doing?
05:44:12 <Inst> I feel like, I'm spending lots of energy and having fun
05:44:28 <Inst> but the techniques i'm learning (badly coded Haskell, etc) aren't really useful, I'm told there's a dozen other methods
05:44:33 <EvanR> if your energy budget is limited I recommend moving on the things that are even more fun
05:44:56 <Inst> well, i mean, trying to work with monad stacks without the benefit of monad transformers
05:44:58 <EvanR> as useful and business friendly as file dialogs are
05:45:04 <Inst> is there any moral benefit to such?
05:45:37 <EvanR> no if you really do have a "monad stack" (uhg), then you should use transformers, or a consolidated free monad or something
05:46:18 <EvanR> alternatively just use IO for top level I/O and do most things in pure code
05:46:23 <Inst> it's more of a teaching exercise for me, though, because i'm learning how to work with the type system
05:46:54 × jonathanx_ quits (~jonathan@h-178-174-176-109.a357.priv.bahnhof.se) (Remote host closed the connection)
05:47:15 jonathanx_ joins (~jonathan@h-178-174-176-109.A357.priv.bahnhof.se)
05:47:28 <EvanR> a given application may not need a "monad stack" at all
05:47:55 <Inst> you know i have very patchwork knowledge
05:48:09 <Inst> i have very little practice with >>= and do, and this is helping me understand them better
05:48:19 <Inst> that's what i mean by teaching exercise, i.e, maybe was revolting against me
05:48:38 <Inst> until i realized you needed to stuff pures with dissimilar stacked monads
05:49:18 <Inst> it's just a fun educational game for teaching myself (and perhaps others) about types
05:49:21 <EvanR> most of the cool stuff in haskell has nothing to do with monads
05:50:17 × xff0x quits (~xff0x@2001:1a81:5298:9f00:76ce:451:456a:7f10) (Ping timeout: 240 seconds)
05:50:34 <Inst> i see
05:51:35 xff0x joins (~xff0x@2001:1a81:5298:9f00:9050:d511:cdde:a154)
05:58:10 Gurkenglas joins (~Gurkengla@dslb-002-203-144-204.002.203.pools.vodafone-ip.de)
05:58:57 × shapr quits (~user@2601:7c0:c202:5190:7595:a4fe:20d3:7169) (Ping timeout: 240 seconds)
06:01:13 deadmarshal joins (~deadmarsh@95.38.113.27)
06:01:49 Magnus[m] parts (~magthetch@2001:470:69fc:105::d1a7) ()
06:02:36 × slowButPresent quits (~slowButPr@user/slowbutpresent) (Quit: leaving)
06:05:44 × [itchyjunk] quits (~itchyjunk@user/itchyjunk/x-7353470) (Remote host closed the connection)
06:12:37 × xff0x quits (~xff0x@2001:1a81:5298:9f00:9050:d511:cdde:a154) (Ping timeout: 240 seconds)
06:13:47 xff0x joins (~xff0x@2001:1a81:5298:9f00:e07:3bd9:947c:632e)
06:15:01 × mvk quits (~mvk@2607:fea8:5cdd:f000::45db) (Ping timeout: 240 seconds)
06:15:23 mixfix41 joins (~homefame@user/mixfix41)
06:16:54 × jonathanx_ quits (~jonathan@h-178-174-176-109.A357.priv.bahnhof.se) (Remote host closed the connection)
06:17:18 jonathanx_ joins (~jonathan@h-178-174-176-109.A357.priv.bahnhof.se)
06:22:06 <maerwald[m]> Monads aren't even that cool
06:23:56 <Inst> sorry
06:24:02 <Inst> went out to get some cigarettes
06:24:26 <Inst> i'll try to explain my perspective
06:24:39 <Inst> i started trying to learn haskell, took up a service-sector job to pay the bills around the same time, in october
06:24:44 <Inst> i've since quit that job since early december
06:24:59 <Inst> in learning haskell, it's been the language that clicked for me, to the extent that i don't understand why people claim it's so difficult
06:26:17 × pagnol quits (~user@014198154145.ctinets.com) (Ping timeout: 240 seconds)
06:26:26 <Inst> one of the things i noticed with haskell is, well, the absence of the typical imperative programming canards, like loops (recursion's an analogue or a superset)
06:27:44 <EvanR> good riddance, for the most part
06:27:53 <Inst> i have a hypothesis that it's possible to teach IO, and I don't mean hello world IO, but rather, being able to drag data from files and write to files etc, interact with network files, and so on
06:27:59 <Inst> I'm addicted to accumulators, though, EvanR
06:28:14 <Square> can you define reusable "dependency-sets" in cabal?
06:28:15 <EvanR> that's a fold
06:28:57 × n3rdy1 quits (~n3rdy1@2600:1700:4570:3480:1b88:50f:dae0:9293) (Ping timeout: 240 seconds)
06:29:03 <Inst> you're sure it's just a fold?
06:29:22 <Inst> i feel a bit guilty using accumulators, like, it feels too much like i'm simulating variables
06:29:25 × sub0 quits (~bc8147f2@cerf.good1.com) (Quit: CGI:IRC (Session timeout))
06:29:25 <EvanR> if you get into the weeds everything is a fold
06:29:27 <Inst> per recursive loop
06:30:01 <Inst> i have a friend who ran out of me after I insisted that she learn Haskell
06:30:12 <Inst> as a first language, she went to pick up Python
06:30:20 tromp joins (~textual@dhcp-077-249-230-040.chello.nl)
06:30:31 <Inst> I think it might be possible to, while the Pythonista kids are learning loops, teach Haskellers how to read / write / do effects
06:30:41 <Inst> and that might end up being good for long-term retention
06:31:01 <EvanR> that's sounds relatively more boring than loops in python
06:31:04 <Inst> the obsession with monads is that I feel like being able to function in IO-land / do-land requires an understanding
06:31:05 falafel_ joins (~falafel@cpe-76-168-195-162.socal.res.rr.com)
06:31:19 <Inst> EvanR: it's a matter of perspective, Haskell is very academic
06:31:21 <EvanR> maybe a total wash at best
06:31:24 <Inst> i see
06:31:51 <Inst> being able to do practical things with haskell early, and use how to manipulate the data you draw it from file system access
06:32:18 <Inst> at least in my hypothesis, might be usable as stakes to teach people why functional programming matters, etc
06:32:39 <EvanR> I hear the `shelly' package is good for that kind of stuff
06:32:47 <Inst> huh, interesting
06:33:46 <Inst> EvanR: what do your students engage with?
06:33:59 <EvanR> why functional programming matters, the title of an influential paper from 1990, and it's not talking about file system access xD
06:34:03 <Inst> I know
06:34:24 <Inst> but if you teach Haskell to non-programmers, as is my aim
06:34:36 <Inst> they don't really care about correctness, ease of reasoning, etc
06:35:01 × Jing quits (~hedgehog@2604:a840:3::103c) (Remote host closed the connection)
06:35:02 <Inst> they'd be more impressed by actually being able to do practical things
06:35:19 <Inst> there's reports from people that "Haskell is the best imperative language" because of the concision of Haskell syntax
06:35:25 <maerwald> Inst: Haskell is not about correctness
06:35:47 Jing joins (~hedgehog@103.121.208.183)
06:36:01 <Inst> https://www.cs.kent.ac.uk/people/staff/dat/miranda/whyfp90.pdf
06:36:15 <EvanR> lets not dwell on "Haskell is the best imperative language", the value proposition of this statement is already off to a bad start
06:36:24 × jonathanx_ quits (~jonathan@h-178-174-176-109.A357.priv.bahnhof.se) (Remote host closed the connection)
06:37:26 <EvanR> who wants to be the best at something awful xD
06:37:57 × falafel_ quits (~falafel@cpe-76-168-195-162.socal.res.rr.com) (Ping timeout: 240 seconds)
06:38:05 <EvanR> hotdog eating contests notwithstanding
06:38:28 <Inst> i'm not a functional fundamentalist, i.e, because computers are ultimately turing machines, until SPJ pulls a couple of more rabbits out of his hat, functional programming will be more resource intensive and less performant than imperative programming
06:38:51 <Inst> that means that imperative programming will always have a place, for applications where performance is paramount
06:39:26 <EvanR> I'm not either, and I don't know if I agree with that
06:40:16 <Inst> well i'm saying we might be able to get out of the imperative trap eventually, but as long as we're stuck here, imperative will exist, just as much as there's assembly programmers, C programmers, Rust programmers, etc
06:40:22 <EvanR> high end hardware is already hard to write code for directly in a way to makes the most use
06:40:38 <Inst> for the non-programmer, though
06:40:50 <EvanR> people use C++, and it's imperative
06:40:59 <Inst> i mean, i think functional programmers and imperative programmers tend toward different intelligence types
06:40:59 × tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
06:41:08 <EvanR> I'm not sure if there's a causal reason for this anymore though
06:41:16 <Inst> causal reason for what?
06:41:58 <Inst> mentally keeping track of state is hard and requires strong working memories
06:42:01 <EvanR> that C++ technology is where all the work went so you have a chance of utilizing your hardware's capability
06:42:17 <EvanR> it's probably more inertia than anything
06:42:25 <Inst> yeah, ecosystem effects
06:42:45 <EvanR> On the GPU, an imperative programming language doesn't really get you much
06:43:01 <maerwald> I think looking at functional vs imperative as correctness vs performance is totally wrong
06:43:02 <Inst> i'm guessing it's because of the massive parallelism
06:43:13 <Inst> maintainability, ease of composition, ease of design, etc
06:43:23 <Inst> the only real advantage i think with imperative is performance
06:43:33 <EvanR> GPU programmers are thinking in a different paradigm these days, and forced to code it through imperative languages
06:43:36 <Inst> if we all had infinitely fast computers we'd all be on functional programming
06:43:47 <maerwald> imperative languages are still the strongest in terms of tooling, support, etc. when it comes to formal verification
06:44:33 <EvanR> Inst, you should learn some functional programming
06:44:40 <EvanR> IMO lol
06:44:40 <Inst> as in, what?
06:45:10 <Inst> recursion, higher order functions, etc
06:45:12 <EvanR> haskell is just the jumping off point, there is much to learn beyond haskell's version of FP
06:45:22 <Inst> I know a bunch of people aggressively selling OCaml
06:45:30 <Inst> I am in the market for SICP
06:45:34 <EvanR> the industry is stuck in a valley, haskell is up on a hill, and then there's the rest of the world
06:46:08 wroathe joins (~wroathe@206-55-188-8.fttp.usinternet.com)
06:46:08 × wroathe quits (~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host)
06:46:08 wroathe joins (~wroathe@user/wroathe)
06:46:10 <Inst> SICP being the 1998 version, not the Javascript version
06:46:12 <EvanR> haskell stuff really pushes you to learn that
06:46:15 <Inst> can't believe MIT jumped off to Python?
06:46:28 <maerwald> EvanR: and then there's people for whom the hill is not enough and they're building a ladder into the sky (most programmers will fall off that ladder)
06:47:17 <EvanR> ivory tower of babel?
06:47:25 <maerwald> dependent haskell
06:47:27 <Inst> maerwald: are you talking Shen?
06:47:32 <EvanR> lol shen
06:47:39 coolnickname joins (uid531864@user/coolnickname)
06:47:59 <maerwald> but if we're lucky, dependent haskell will be a success story similar to backpack
06:48:19 <Inst> backpack?
06:48:25 <maerwald> exactly
06:48:29 <int-e> maerwald: hah
06:48:48 <Inst> https://dl.acm.org/doi/10.1145/2535838.2535884
06:48:53 nhatanh02 joins (~satori@123.24.172.30)
06:49:23 <EvanR> maerwald, well, we're probably considering different kind of programmers
06:49:30 <EvanR> different kinds
06:50:13 <EvanR> I'm not expecting anyone who ended up as a programmer due to being bad analytically to start using dependent types
06:51:13 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 256 seconds)
06:51:28 <Inst> erm, do you mind if I ask a final question?
06:51:31 <maerwald> EvanR: I'm worried about programmers who are good analytically
06:51:45 <maerwald> writing code for their ego, not for users
06:51:49 <EvanR> the ones pushing dependent types? xD
06:52:29 <int-e> maerwald: user data is just protocol overhead
06:53:51 <Inst> well, if you're willing to humor me
06:53:55 <Inst> basically, in terms of style guidelines
06:54:11 <Inst> i'm working with the notion that main should be as sparse as possible, i.e, a hub of hubs (or of hubs of hubs of hubs and so on)
06:54:24 <Inst> IO-land functions should do no more than 5 things at a time
06:54:32 × Jing quits (~hedgehog@103.121.208.183) (Remote host closed the connection)
06:54:46 <Inst> erm, IO-land functions should be divided into hub and spoke functions, the former of which are limited to 5 things at a time, and the latter 1-2 things
06:55:02 <Inst> i'm not sure if that's a wise way to structure things, or are there other guidelines?
06:55:11 <Inst> for pure functions, I have a problem where I write really long pipes
06:55:12 Jing joins (~hedgehog@240e:390:7c53:a7e1:dda7:7c4c:abf9:d2d)
06:55:29 <EvanR> is that from structured programming or something
06:55:32 <Inst> how long should a pipe be before I look into ways to truncate it?
06:55:42 <Inst> I don't know structured programming, it's what I came up with off the top of my head
06:55:55 <Inst> I ran off to functional programming because I didn't have the working memory to understand imperative programming code
06:56:27 <EvanR> you'll get better at style after writing a lot of code and having people take it apart
06:56:49 <Inst> i probably have a cognitive defect wherein long vertical lists make me sick, but transcontinental pipelines are fine
06:56:50 <EvanR> as opposed to attempts to over prescribe style ahead of time
06:57:09 <Inst> thanks
06:57:16 jakalx parts (~jakalx@base.jakalx.net) (Error from remote client)
06:57:54 BrokenClutch parts (~pioneer@2804:d41:c292:6c00:33d8:d2f1:d8af:153e) ()
06:58:50 <Inst> what did you mean, btw, by the more interesting parts of haskell?
06:58:53 <Inst> like the type system?
07:00:24 <EvanR> maybe you can get an idea by doing some exercises or advent of code in haskell
07:00:36 <Inst> i've done my share, I have a workstation computer
07:00:47 <Inst> that should have been sent back to the shop
07:00:59 <Inst> it's still waiting on me to finish the IO-land exercises in one textbook
07:01:24 <Inst> then that book is finished, also working on exercises in Hutton's
07:02:06 <Inst> Get Programming with Haskell apparently has some really nice projects, 42 of them
07:02:15 <Inst> just picked it up
07:02:27 <EvanR> ... maybe not
07:02:42 <EvanR> move on to real projects
07:03:21 tromp joins (~textual@dhcp-077-249-230-040.chello.nl)
07:12:37 × xff0x quits (~xff0x@2001:1a81:5298:9f00:e07:3bd9:947c:632e) (Ping timeout: 240 seconds)
07:13:14 × sirlensalot quits (~sirlensal@ool-44c5f8c9.dyn.optonline.net) (Quit: sirlensalot)
07:13:53 xff0x joins (~xff0x@2001:1a81:5298:9f00:c8df:ae8c:ee9b:1cca)
07:30:36 × shriekingnoise quits (~shrieking@186.137.144.80) (Quit: Quit)
07:30:47 × pretty_dumm_guy quits (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Quit: WeeChat 3.4)
07:35:00 × kaph_ quits (~kaph@net-2-38-107-19.cust.vodafonedsl.it) (Ping timeout: 256 seconds)
07:39:53 jakalx joins (~jakalx@base.jakalx.net)
07:40:53 × aplainzetakind quits (~johndoe@captainludd.powered.by.lunarbnc.net) (Ping timeout: 252 seconds)
07:41:01 × jinsun_ quits (~jinsun@user/jinsun) (Ping timeout: 240 seconds)
07:42:33 jinsun_ joins (~jinsun@user/jinsun)
07:47:44 johnw_ joins (~johnw@2607:f6f0:3004:1:c8b4:50ff:fef8:6bf0)
07:48:00 ksqsf joins (~user@134.209.106.31)
07:48:37 × zwro[m] quits (~zwromatri@2001:470:69fc:105::1d4) (Ping timeout: 240 seconds)
07:48:53 zwro[m] joins (~zwromatri@2001:470:69fc:105::1d4)
07:49:01 × johnw quits (~johnw@2607:f6f0:3004:1:c8b4:50ff:fef8:6bf0) (Ping timeout: 240 seconds)
07:49:44 takuan joins (~takuan@178-116-218-225.access.telenet.be)
07:49:51 × tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
07:53:49 × pfurla-matrix quits (~pedrofurl@2001:470:69fc:105::1:51d7) (Ping timeout: 240 seconds)
07:53:49 × jneira[m] quits (~jneiramat@2001:470:69fc:105::d729) (Ping timeout: 240 seconds)
07:53:49 × octeep[m] quits (~octeepoct@2001:470:69fc:105::1:3dbf) (Ping timeout: 240 seconds)
07:53:49 × jmcantrell quits (~jmcantrel@user/jmcantrell) (Ping timeout: 240 seconds)
07:53:49 × Topik[m] quits (~topikmatr@2001:470:69fc:105::a082) (Ping timeout: 240 seconds)
07:53:49 × Deide quits (~deide@user/deide) (Ping timeout: 240 seconds)
07:53:49 × wysteriary[m] quits (~wysteriar@2001:470:69fc:105::a42e) (Ping timeout: 240 seconds)
07:53:49 × RosarioPulella[m quits (~rosariopu@2001:470:69fc:105::a57) (Ping timeout: 240 seconds)
07:53:49 × xddq[m] quits (~xddqmatri@2001:470:69fc:105::bfd8) (Ping timeout: 240 seconds)
07:54:13 × johnw_ quits (~johnw@2607:f6f0:3004:1:c8b4:50ff:fef8:6bf0) (Ping timeout: 240 seconds)
07:54:13 × tripa[m] quits (~tripamatr@2001:470:69fc:105::1:4f7e) (Ping timeout: 240 seconds)
07:56:16 johnw joins (~johnw@76-234-69-149.lightspeed.frokca.sbcglobal.net)
07:56:44 jneira[m] joins (~jneiramat@2001:470:69fc:105::d729)
07:57:31 × Alex_test quits (~al_test@178.34.162.219) (Ping timeout: 256 seconds)
07:57:31 × AlexZenon quits (~alzenon@178.34.162.219) (Ping timeout: 256 seconds)
07:57:43 pfurla-matrix joins (~pedrofurl@2001:470:69fc:105::1:51d7)
07:57:46 Alex_test joins (~al_test@178.34.162.219)
07:57:47 AlexZenon joins (~alzenon@178.34.162.219)
07:59:02 × Jing quits (~hedgehog@240e:390:7c53:a7e1:dda7:7c4c:abf9:d2d) (Quit: My MacBook has gone to sleep. ZZZzzz…)
08:01:29 × Inst quits (~delicacie@c-98-208-218-119.hsd1.fl.comcast.net) (Ping timeout: 256 seconds)
08:03:54 falafel joins (~falafel@2603-8000-d800-688c-54f8-65c3-409b-d4a1.res6.spectrum.com)
08:07:14 wysteriary[m] joins (~wysteriar@2001:470:69fc:105::a42e)
08:07:19 Topik[m] joins (~topikmatr@2001:470:69fc:105::a082)
08:07:57 × falafel quits (~falafel@2603-8000-d800-688c-54f8-65c3-409b-d4a1.res6.spectrum.com) (Ping timeout: 240 seconds)
08:08:18 octeep[m] joins (~octeepoct@2001:470:69fc:105::1:3dbf)
08:08:43 shriekingnoise joins (~shrieking@186.137.144.80)
08:09:01 RosarioPulella[m joins (~rosariopu@2001:470:69fc:105::a57)
08:09:50 jmcantrell joins (~jmcantrel@user/jmcantrell)
08:09:57 × zmt00 quits (~zmt00@user/zmt00) (Ping timeout: 240 seconds)
08:10:18 × califax quits (~califax@user/califx) (Ping timeout: 276 seconds)
08:10:45 califax joins (~califax@user/califx)
08:11:16 xddq[m] joins (~xddqmatri@2001:470:69fc:105::bfd8)
08:11:17 mvk joins (~mvk@2607:fea8:5cdd:f000::45db)
08:11:58 Deide joins (~deide@user/deide)
08:12:59 tripa[m] joins (~tripamatr@2001:470:69fc:105::1:4f7e)
08:13:32 × td_ quits (~td@94.134.91.205) (Ping timeout: 256 seconds)
08:13:47 td_ joins (~td@94.134.91.205)
08:17:41 pagnol joins (~user@014198154145.ctinets.com)
08:19:17 lavaman joins (~lavaman@98.38.249.169)
08:19:19 pagnol parts (~user@014198154145.ctinets.com) ()
08:21:31 spaceseller joins (~spacesell@31.147.205.13)
08:23:25 × lavaman quits (~lavaman@98.38.249.169) (Ping timeout: 240 seconds)
08:25:04 × spaceseller quits (~spacesell@31.147.205.13) (Client Quit)
08:32:47 aplainzetakind joins (~johndoe@captainludd.powered.by.lunarbnc.net)
08:43:24 _ht joins (~quassel@82-169-194-8.biz.kpn.net)
08:44:49 × img quits (~img@user/img) (Quit: ZNC 1.8.2 - https://znc.in)
08:46:56 wroathe joins (~wroathe@206-55-188-8.fttp.usinternet.com)
08:46:56 × wroathe quits (~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host)
08:46:56 wroathe joins (~wroathe@user/wroathe)
08:48:09 × tzh quits (~tzh@c-24-21-73-154.hsd1.or.comcast.net) (Quit: zzz)
08:48:50 tromp joins (~textual@dhcp-077-249-230-040.chello.nl)
08:49:55 jonathanx joins (~jonathan@h-178-174-176-109.A357.priv.bahnhof.se)
08:49:55 user0 joins (~aj@154.0.137.32)
08:51:09 img joins (~img@user/img)
08:51:49 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 240 seconds)
08:54:20 × nhatanh02 quits (~satori@123.24.172.30) (Ping timeout: 256 seconds)
09:00:57 × mikoto-chan quits (~mikoto-ch@esm-84-240-99-143.netplaza.fi) (Ping timeout: 240 seconds)
09:05:10 × phma quits (phma@2001:5b0:211c:3a48:e7cb:c702:2cb6:39c) (Read error: Connection reset by peer)
09:05:31 × Erutuon quits (~Erutuon@user/erutuon) (Ping timeout: 256 seconds)
09:06:10 phma joins (~phma@host-67-44-208-201.hnremote.net)
09:06:47 max22- joins (~maxime@lfbn-ren-1-1026-62.w92-139.abo.wanadoo.fr)
09:07:31 × clownpi3c3 quits (~clownpi3c@94.50.183.196) (Remote host closed the connection)
09:10:10 × x88x88x quits (~x88x88x@2001:19f0:5:39a8:5400:3ff:feb6:73cb) (Remote host closed the connection)
09:10:55 x88x88x joins (~x88x88x@149.28.53.172)
09:17:36 allbery_b joins (~geekosaur@xmonad/geekosaur)
09:17:36 × geekosaur quits (~geekosaur@xmonad/geekosaur) (Killed (NickServ (GHOST command used by allbery_b)))
09:17:39 allbery_b is now known as geekosaur
09:18:22 Pickchea joins (~private@user/pickchea)
09:18:44 acidjnk joins (~acidjnk@p200300d0c7271e73e09b8468fdbe4c29.dip0.t-ipconnect.de)
09:18:44 acidjnk_new3 joins (~acidjnk@p200300d0c7271e73e09b8468fdbe4c29.dip0.t-ipconnect.de)
09:19:03 user0 parts (~aj@154.0.137.32) ()
09:19:53 × eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
09:20:12 eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
09:21:21 × eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
09:22:59 × Pickchea quits (~private@user/pickchea) (Client Quit)
09:26:29 zincy_ joins (~zincy@2a00:23c8:970c:4801:8d43:554e:d62c:915d)
09:31:00 × cemg quits (~cemguresc@2001:a61:11ff:a001:9318:98d4:c6f5:3049) (Ping timeout: 268 seconds)
09:31:18 kaph joins (~kaph@net-2-38-107-19.cust.vodafonedsl.it)
09:31:54 ksqsf parts (~user@134.209.106.31) (ERC (IRC client for Emacs 27.2))
09:34:21 SummerSonw joins (~The_viole@203.77.49.232)
09:40:18 × zincy_ quits (~zincy@2a00:23c8:970c:4801:8d43:554e:d62c:915d) (Remote host closed the connection)
09:47:29 × coolnickname quits (uid531864@user/coolnickname) (Quit: Connection closed for inactivity)
09:57:05 Garbanzo joins (~Garbanzo@2602:304:6eac:dc10::46)
09:59:15 Inst joins (~delicacie@c-98-208-218-119.hsd1.fl.comcast.net)
10:00:14 × aplainzetakind quits (~johndoe@captainludd.powered.by.lunarbnc.net) (Quit: Free ZNC ~ Powered by LunarBNC: https://LunarBNC.net)
10:01:37 × Garbanzo quits (~Garbanzo@2602:304:6eac:dc10::46) (Ping timeout: 240 seconds)
10:03:40 aplainze1akind joins (~johndoe@captainludd.powered.by.lunarbnc.net)
10:04:20 mc47 joins (~mc47@xmonad/TheMC47)
10:09:33 razetime joins (~quassel@49.207.213.63)
10:11:15 <Square> what is the goto logging library 2022? katip? Hslogger?
10:11:49 Tuplanolla joins (~Tuplanoll@91-159-68-11.elisa-laajakaista.fi)
10:12:46 Jing joins (~hedgehog@240e:390:7c53:a7e1:8d38:5b59:3c2d:440)
10:14:17 × deadmarshal quits (~deadmarsh@95.38.113.27) (Ping timeout: 240 seconds)
10:14:48 <[exa]> for extra 2022 vibes try unsafePerformLogging
10:15:35 <[exa]> other than that depends on how complex your logs should be (syslog? multiple files? topics&severities?)
10:17:13 <[exa]> btw `logging` isn't that bad either
10:17:31 deadmarshal joins (~deadmarsh@95.38.113.27)
10:19:15 × tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
10:19:41 ubert joins (~Thunderbi@p200300ecdf09944400397d9ba615ef71.dip0.t-ipconnect.de)
10:21:50 eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
10:24:58 tromp joins (~textual@dhcp-077-249-230-040.chello.nl)
10:26:08 × eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 256 seconds)
10:26:09 × LiaoTao quits (~LiaoTao@gateway/tor-sasl/liaotao) (Ping timeout: 276 seconds)
10:26:57 LiaoTao joins (~LiaoTao@gateway/tor-sasl/liaotao)
10:34:17 Lord_of_Life_ joins (~Lord@user/lord-of-life/x-2819915)
10:35:12 × Lord_of_Life quits (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 256 seconds)
10:35:35 Lord_of_Life_ is now known as Lord_of_Life
10:35:42 AlexNoo_ is now known as AlexNoo
10:38:53 × Sgeo quits (~Sgeo@user/sgeo) (Read error: Connection reset by peer)
10:40:38 DNH joins (~DNH@2a02:8108:1100:16d8:c1f6:dbe8:b4c8:cd59)
10:41:53 <maerwald[m]> Square: none
10:42:02 <maerwald[m]> Hand roll it
10:42:07 <maerwald[m]> Logging isn't hard
10:42:20 <Square> say that to the log4j folks
10:42:25 × dsrt^ quits (~dsrt@wsip-98-188-246-242.mc.at.cox.net) (Ping timeout: 256 seconds)
10:44:19 <Square> Also logging is boring, so i prefer spending least amount of time on it. =D
10:47:44 wroathe joins (~wroathe@206-55-188-8.fttp.usinternet.com)
10:47:44 × wroathe quits (~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host)
10:47:44 wroathe joins (~wroathe@user/wroathe)
10:52:37 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 240 seconds)
10:55:05 zer0bitz joins (~zer0bitz@196.244.192.61)
10:55:43 zer0bitz_ joins (~zer0bitz@196.244.192.61)
10:56:38 matrox joins (~bc8147f2@cerf.good1.com)
10:59:25 × zer0bitz quits (~zer0bitz@196.244.192.61) (Ping timeout: 256 seconds)
11:03:06 jakalx parts (~jakalx@base.jakalx.net) ()
11:06:33 jakalx joins (~jakalx@base.jakalx.net)
11:13:26 × whatsupdoc quits (uid509081@id-509081.hampstead.irccloud.com) (Quit: Connection closed for inactivity)
11:17:35 antony joins (~The_viole@203.77.49.232)
11:18:28 wroathe joins (~wroathe@206-55-188-8.fttp.usinternet.com)
11:18:28 × wroathe quits (~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host)
11:18:28 wroathe joins (~wroathe@user/wroathe)
11:20:13 × SummerSonw quits (~The_viole@203.77.49.232) (Ping timeout: 240 seconds)
11:22:14 × antony quits (~The_viole@203.77.49.232) (Client Quit)
11:23:13 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 256 seconds)
11:26:51 × econo quits (uid147250@user/econo) (Quit: Connection closed for inactivity)
11:31:29 jgeerds joins (~jgeerds@55d4bbed.access.ecotel.net)
11:32:52 <matrox> hi. do you use c2hs to generate C bindings? does it work with stack? I used something similar several years ago, and it worked nicely, but then when I switched to stack it stopped working
11:32:56 <matrox> https://hackage.haskell.org/package/c2hs
11:33:54 <geekosaur> c2hs should work with stack but may be broken with newer versions of gcc and headers installed with or to work with it
11:34:48 __monty__ joins (~toonn@user/toonn)
11:35:51 <geekosaur> if you're seeing "The symbol <whatever> does not fit here" it's probably that
11:37:09 <geekosaur> looks like the gcc one has been fixed upstream but I don't know if it's made a release yet
11:39:16 <geekosaur> there are also a few new ones still open including one against clang/macos
11:45:07 xkuru joins (~xkuru@user/xkuru)
11:46:41 lavaman joins (~lavaman@98.38.249.169)
11:50:39 <matrox> geekosaur, so it is still broken, just in a different way? that's too bad. seems like tools c2hs can't help but be fragile
11:51:36 <geekosaur> in this case, yes. it's not at all uncommon that vendors make changes to internal #include files that are not intended to be seen by users, but a tool like c2hs will see them and break
11:52:13 <geekosaur> hsc2hs is insulated from that kind of change but is of course less capable
11:52:41 × lavaman quits (~lavaman@98.38.249.169) (Ping timeout: 256 seconds)
11:52:46 <matrox> oh, I believe that is what I used several years ago, and then for some reason, it wouldn't work with stack. or I didn't know how to make it work
11:53:07 <geekosaur> afaik stack should have no problem with it
11:53:26 <geekosaur> would need to be declared as a build tool but cabal requires that too
11:53:56 <geekosaur> it's just by its nature rather more fragile than alternatives
11:54:31 <geekosaur> (come to think of it I thought the fpcomplete folks used it with inline-c, so I'd expect stack to work well with it)
11:57:17 <geekosaur> mm, hackage claims not, guess I'm wrong
11:57:32 coot joins (~coot@89-64-85-93.dynamic.chello.pl)
11:57:49 × ph88 quits (~ph88@2a02:8109:9e00:71d0::7e04) (Ping timeout: 240 seconds)
12:08:34 <matrox> too bad. it is such a pain to write C bindings by hand, and error prone too (especially if, for example, struct size can vary). so I often end up writing code that uses C library extensively in C or C++, even though I'd prefer to write it in haskell
12:16:36 machinedgod joins (~machinedg@24.105.81.50)
12:20:01 xb0o2 joins (~xb0o2@user/xb0o2)
12:24:02 eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
12:26:41 × Gurkenglas quits (~Gurkengla@dslb-002-203-144-204.002.203.pools.vodafone-ip.de) (Ping timeout: 256 seconds)
12:28:23 × eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 256 seconds)
12:30:46 × coot quits (~coot@89-64-85-93.dynamic.chello.pl) (Quit: coot)
12:43:32 × max22- quits (~maxime@lfbn-ren-1-1026-62.w92-139.abo.wanadoo.fr) (Ping timeout: 240 seconds)
12:50:37 × acidjnk quits (~acidjnk@p200300d0c7271e73e09b8468fdbe4c29.dip0.t-ipconnect.de) (Ping timeout: 240 seconds)
12:50:37 × acidjnk_new3 quits (~acidjnk@p200300d0c7271e73e09b8468fdbe4c29.dip0.t-ipconnect.de) (Ping timeout: 240 seconds)
12:56:08 tfeb joins (~tfb@88.98.95.237)
12:57:12 tfeb is now known as tfb
13:00:07 wroathe joins (~wroathe@206-55-188-8.fttp.usinternet.com)
13:00:07 × wroathe quits (~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host)
13:00:07 wroathe joins (~wroathe@user/wroathe)
13:00:45 coot joins (~coot@89-64-85-93.dynamic.chello.pl)
13:03:51 × tfb quits (~tfb@88.98.95.237) (Quit: died)
13:04:37 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 240 seconds)
13:08:38 × coot quits (~coot@89-64-85-93.dynamic.chello.pl) (Quit: coot)
13:09:10 [itchyjunk] joins (~itchyjunk@user/itchyjunk/x-7353470)
13:13:02 × jgeerds quits (~jgeerds@55d4bbed.access.ecotel.net) (Ping timeout: 240 seconds)
13:16:25 × DNH quits (~DNH@2a02:8108:1100:16d8:c1f6:dbe8:b4c8:cd59) (Quit: My MacBook has gone to sleep. ZZZzzz…)
13:21:20 acidjnk joins (~acidjnk@p200300d0c7271e7348f13af2a2732e1a.dip0.t-ipconnect.de)
13:21:20 acidjnk_new3 joins (~acidjnk@p200300d0c7271e7348f13af2a2732e1a.dip0.t-ipconnect.de)
13:21:57 Brumaire joins (~quassel@81-64-14-121.rev.numericable.fr)
13:25:04 × img quits (~img@user/img) (Quit: ZNC 1.8.2 - https://znc.in)
13:26:28 img joins (~img@user/img)
13:26:32 rond_ joins (~rond_@2a01:115f:943:5e00:3fb6:23a4:a917:27c7)
13:29:35 ph88 joins (~ph88@2a02:8109:9e00:71d0::7e04)
13:30:11 Hayek joins (~xxx@rrcs-173-196-3-254.west.biz.rr.com)
13:32:57 max22- joins (~maxime@2a01cb08833598001efaefdacc745aec.ipv6.abo.wanadoo.fr)
13:40:13 CiaoSen joins (~Jura@p200300c957347b002a3a4dfffe84dbd5.dip0.t-ipconnect.de)
13:44:30 × ChaiTRex quits (~ChaiTRex@user/chaitrex) (Remote host closed the connection)
13:44:30 × stiell quits (~stiell@gateway/tor-sasl/stiell) (Remote host closed the connection)
13:44:31 × chexum quits (~quassel@gateway/tor-sasl/chexum) (Remote host closed the connection)
13:44:44 chexum joins (~quassel@gateway/tor-sasl/chexum)
13:44:52 stiell joins (~stiell@gateway/tor-sasl/stiell)
13:44:59 ChaiTRex joins (~ChaiTRex@user/chaitrex)
13:47:43 × Brumaire quits (~quassel@81-64-14-121.rev.numericable.fr) (Quit: No Ping reply in 180 seconds.)
13:48:07 × choucavalier quits (~choucaval@peanutbuttervibes.com) (Changing host)
13:48:07 choucavalier joins (~choucaval@user/choucavalier)
13:49:02 coot joins (~coot@89-64-85-93.dynamic.chello.pl)
13:49:07 Brumaire joins (~quassel@81-64-14-121.rev.numericable.fr)
13:49:13 × Brumaire quits (~quassel@81-64-14-121.rev.numericable.fr) (Client Quit)
13:49:34 Brumaire joins (~quassel@81-64-14-121.rev.numericable.fr)
13:51:00 × pavonia quits (~user@user/siracusa) (Quit: Bye!)
13:53:58 × choucavalier quits (~choucaval@user/choucavalier) (Quit: ZNC 1.8.2 - https://znc.in)
13:54:15 tfeb joins (~tfb@88.98.95.237)
13:54:17 choucavalier joins (~choucaval@peanutbuttervibes.com)
13:55:32 × max22- quits (~maxime@2a01cb08833598001efaefdacc745aec.ipv6.abo.wanadoo.fr) (Ping timeout: 240 seconds)
13:56:05 tfeb is now known as tfb
13:57:07 × riatre quits (~quassel@2001:310:6000:f::5198:1) (Quit: http://quassel-irc.org)
13:57:16 _xor joins (~xor@dsl-50-5-233-169.fuse.net)
13:57:42 riatre joins (~quassel@2001:310:6000:f::5198:1)
14:05:31 × tfb quits (~tfb@88.98.95.237) (Quit: died)
14:09:03 × tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
14:11:25 burnsidesLlama joins (~burnsides@dhcp168-013.wadham.ox.ac.uk)
14:13:07 tromp joins (~textual@dhcp-077-249-230-040.chello.nl)
14:13:10 × albet70 quits (~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection)
14:15:22 sirlensalot joins (~sirlensal@ool-44c5f8c9.dyn.optonline.net)
14:18:36 cosimone` joins (~user@93-47-228-11.ip115.fastwebnet.it)
14:19:17 albet70 joins (~xxx@2400:8902::f03c:92ff:fe60:98d8)
14:19:36 × cosimone quits (~user@2001:b07:ae5:db26:c24a:d20:4d91:1e20) (Ping timeout: 268 seconds)
14:20:01 × ubert quits (~Thunderbi@p200300ecdf09944400397d9ba615ef71.dip0.t-ipconnect.de) (Remote host closed the connection)
14:20:12 × matrox quits (~bc8147f2@cerf.good1.com) (Quit: CGI:IRC)
14:20:33 matrox joins (~bc8147f2@cerf.good1.com)
14:21:05 oweasel joins (~frank1998@114-26-9-148.dynamic-ip.hinet.net)
14:21:13 × nek0 quits (~nek0@nek0.eu) (Quit: The Lounge - https://thelounge.chat)
14:21:16 × xsperry quits (~xs@user/xsperry) (Killed (NickServ (GHOST command used by aldkjsfasdf!~xs@cpe-188-129-71-242.dynamic.amis.hr)))
14:21:23 xsperry joins (~xs@user/xsperry)
14:22:22 × oweasel quits (~frank1998@114-26-9-148.dynamic-ip.hinet.net) (Remote host closed the connection)
14:22:31 × burnsidesLlama quits (~burnsides@dhcp168-013.wadham.ox.ac.uk) (Remote host closed the connection)
14:22:47 oweasel joins (~frank1998@114-26-9-148.dynamic-ip.hinet.net)
14:22:58 burnsidesLlama joins (~burnsides@dhcp168-013.wadham.ox.ac.uk)
14:23:48 SummerSonw joins (~The_viole@203.77.49.232)
14:24:10 × albet70 quits (~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection)
14:26:06 × oweasel quits (~frank1998@114-26-9-148.dynamic-ip.hinet.net) (Remote host closed the connection)
14:26:38 max22- joins (~maxime@2a01cb08833598001e8492dc42f658f2.ipv6.abo.wanadoo.fr)
14:27:32 × burnsidesLlama quits (~burnsides@dhcp168-013.wadham.ox.ac.uk) (Ping timeout: 256 seconds)
14:30:01 × zincy quits (~tom@2a00:23c8:970c:4801:5b6a:e81b:79dc:f684) (Ping timeout: 250 seconds)
14:30:17 albet70 joins (~xxx@2400:8902::f03c:92ff:fe60:98d8)
14:31:11 × albet70 quits (~xxx@2400:8902::f03c:92ff:fe60:98d8) (Read error: Connection reset by peer)
14:31:53 gallup joins (~gallup@192-222-138-215.qc.cable.ebox.net)
14:33:04 nek0 joins (~nek0@nek0.eu)
14:36:52 × CiaoSen quits (~Jura@p200300c957347b002a3a4dfffe84dbd5.dip0.t-ipconnect.de) (Ping timeout: 268 seconds)
14:37:17 albet70 joins (~xxx@2400:8902::f03c:92ff:fe60:98d8)
14:38:11 × albet70 quits (~xxx@2400:8902::f03c:92ff:fe60:98d8) (Read error: Connection reset by peer)
14:38:17 × sirlensalot quits (~sirlensal@ool-44c5f8c9.dyn.optonline.net) (Quit: sirlensalot)
14:39:48 × Vajb quits (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Read error: Connection reset by peer)
14:44:18 albet70 joins (~xxx@2400:8902::f03c:92ff:fe60:98d8)
14:45:12 × albet70 quits (~xxx@2400:8902::f03c:92ff:fe60:98d8) (Read error: Connection reset by peer)
14:45:14 mikoto-chan joins (~mikoto-ch@esm-84-240-99-143.netplaza.fi)
14:46:33 bontaq joins (~user@ool-45779fe5.dyn.optonline.net)
14:49:25 × acidjnk quits (~acidjnk@p200300d0c7271e7348f13af2a2732e1a.dip0.t-ipconnect.de) (Ping timeout: 240 seconds)
14:49:25 × acidjnk_new3 quits (~acidjnk@p200300d0c7271e7348f13af2a2732e1a.dip0.t-ipconnect.de) (Ping timeout: 240 seconds)
14:51:06 Midjak joins (~Midjak@may53-1-78-226-116-92.fbx.proxad.net)
14:51:18 albet70 joins (~xxx@2400:8902::f03c:92ff:fe60:98d8)
14:53:12 <[itchyjunk]> wahaha
14:53:13 <[itchyjunk]> https://bpa.st/LWBA
14:53:28 burnsidesLlama joins (~burnsides@dhcp168-013.wadham.ox.ac.uk)
14:54:12 × albet70 quits (~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection)
14:54:50 × mikoto-chan quits (~mikoto-ch@esm-84-240-99-143.netplaza.fi) (Quit: mikoto-chan)
14:54:51 × burnsidesLlama quits (~burnsides@dhcp168-013.wadham.ox.ac.uk) (Remote host closed the connection)
14:55:17 burnsidesLlama joins (~burnsides@dhcp168-013.wadham.ox.ac.uk)
14:56:34 <[exa]> [itchyjunk]: go == (+) . (^2)
14:56:45 gallup is now known as aouestbillie
14:56:46 <int-e> dubious
14:56:57 <[itchyjunk]> hmmmm i should really learn function composition
14:57:05 <int-e> (should be a left fold :P)
14:57:09 <[itchyjunk]> you're just saying compose + with ^2 right?
14:57:21 Everything joins (~Everythin@37.115.210.35)
14:57:21 <[exa]> [itchyjunk]: or send a @pl to lambdabot :D :D
14:57:28 <geekosaur> function composition is one thing,, pointfree is … a readability tarpit
14:57:50 <geekosaur> I'd say ignore that for now
14:57:52 <int-e> also I'd use sum . map for this 99% of the time
14:57:52 <[exa]> +1 for foldl' though
14:57:54 <[itchyjunk]> ah great!
14:58:07 <[itchyjunk]> it says don't use map
14:58:23 <int-e> [itchyjunk]: Yeah I've seen that you're required to use foldr
14:58:36 × coot quits (~coot@89-64-85-93.dynamic.chello.pl) (Quit: coot)
14:58:37 <int-e> So take it as a complaint about the problem not your code :P
14:58:51 <[itchyjunk]> i used map to check the solution instead
14:58:54 × burnsidesLlama quits (~burnsides@dhcp168-013.wadham.ox.ac.uk) (Remote host closed the connection)
14:59:02 burnsidesLlama joins (~burnsides@dhcp168-013.wadham.ox.ac.uk)
14:59:07 <[itchyjunk]> the foldr and foldl difference is eventually going to get me
14:59:09 Vajb joins (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi)
14:59:22 <[itchyjunk]> i had nicely forgotten about - operator and it not being associative
14:59:26 <int-e> the same is true for wanting this to be a (strict, indeed) left fold
15:00:18 albet70 joins (~xxx@2400:8902::f03c:92ff:fe60:98d8)
15:02:19 mikoto-chan joins (~mikoto-ch@esm-84-240-99-143.netplaza.fi)
15:09:39 × burnsidesLlama quits (~burnsides@dhcp168-013.wadham.ox.ac.uk) (Remote host closed the connection)
15:10:06 burnsidesLlama joins (~burnsides@dhcp168-013.wadham.ox.ac.uk)
15:10:10 <[itchyjunk]> call me crazy but it works :D
15:10:11 <[itchyjunk]> https://bpa.st/B3QA
15:10:12 × wyrd quits (~wyrd@gateway/tor-sasl/wyrd) (Ping timeout: 276 seconds)
15:11:05 raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
15:11:06 × burnsidesLlama quits (~burnsides@dhcp168-013.wadham.ox.ac.uk) (Remote host closed the connection)
15:11:12 burnsidesLlama joins (~burnsides@dhcp168-013.wadham.ox.ac.uk)
15:11:13 <geekosaur> not how I'd do it
15:11:57 o-90 joins (~o-90@gateway/tor-sasl/o-90)
15:12:03 <[itchyjunk]> you'ed use helper function instead of map?
15:13:01 <[exa]> why the zero case?
15:13:52 <[itchyjunk]> hmm
15:14:22 o-90 parts (~o-90@gateway/tor-sasl/o-90) ()
15:14:34 <[itchyjunk]> ah i guess map takes care of the empty list case so it would be redundent?
15:14:51 <geekosaur> the fold does since it'd just return the 0
15:15:07 <[itchyjunk]> ahh
15:15:29 <geekosaur> > foldr f z []
15:15:31 <lambdabot> z
15:16:53 CiaoSen joins (~Jura@p200300c957347b002a3a4dfffe84dbd5.dip0.t-ipconnect.de)
15:18:32 × cosimone` quits (~user@93-47-228-11.ip115.fastwebnet.it) (Ping timeout: 256 seconds)
15:19:03 cosimone` joins (~user@2001:b07:ae5:db26:c24a:d20:4d91:1e20)
15:21:20 <[itchyjunk]> https://bpa.st/PYMA
15:21:30 <[itchyjunk]> I did the foldl differently using a helper
15:21:54 × burnsidesLlama quits (~burnsides@dhcp168-013.wadham.ox.ac.uk) (Remote host closed the connection)
15:22:13 × albet70 quits (~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection)
15:22:21 burnsidesLlama joins (~burnsides@dhcp168-013.wadham.ox.ac.uk)
15:22:22 <geekosaur> that's closer to how I'd do it. have they taught you about lambdas yet?
15:22:54 <[itchyjunk]> no. this isn't for a class :x i am grabbing random google exercises
15:23:10 <[itchyjunk]> but i know \x->x thingy from looking at random things
15:24:00 <geekosaur> so in place of such a simple "go" I'd just ise \x y -> x + 1
15:24:18 <geekosaur> pr replace the y with _ since I'm not using it
15:25:13 <[itchyjunk]> oh neat!
15:25:21 <bjs> or just (+ 1)
15:26:13 eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
15:26:16 <geekosaur> not quite since you need to discard the other one
15:26:19 <bjs> [itchyjunk]: I'd write `\_ x -> x + 1` here
15:26:43 <geekosaur> you can pointfree it with that and const, but meh
15:26:55 <[itchyjunk]> hm what did pointfree mean?
15:27:02 × burnsidesLlama quits (~burnsides@dhcp168-013.wadham.ox.ac.uk) (Ping timeout: 256 seconds)
15:27:08 <bjs> [itchyjunk]: you can `const (+ 1)` or `\_ -> (+ 1)`
15:27:11 <bjs> then you don't mention "x"
15:27:26 × cosimone` quits (~user@2001:b07:ae5:db26:c24a:d20:4d91:1e20) (Ping timeout: 268 seconds)
15:28:07 <[itchyjunk]> /o\
15:28:20 albet70 joins (~xxx@2400:8902::f03c:92ff:fe60:98d8)
15:28:37 <bjs> some people call it a "pointless" style because they're funny people :)
15:28:43 <geekosaur> that was also what we were discussing before with [08 14:56:34] <[exa]> [itchyjunk]: go == (+) . (^2)
15:29:05 <geekosaur> and I'm meh on it because of readability especially for beginners
15:29:13 × albet70 quits (~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection)
15:30:06 <[itchyjunk]> ahh
15:30:24 <[itchyjunk]> i thought the point was referring to the . point
15:30:42 <geekosaur> a point is a variable, essentiallyy
15:30:51 × eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 256 seconds)
15:31:36 <[itchyjunk]> ah
15:32:02 <geekosaur> @pl \x y -> x + 1
15:32:02 <lambdabot> const . (1 +)
15:32:19 <geekosaur> I don't exactly recommend that
15:33:15 <geekosaur> it's the sort of thing you come back 6 months later and wonder wtf you were drinking at the time
15:33:36 burnsidesLlama joins (~burnsides@dhcp168-013.wadham.ox.ac.uk)
15:33:45 × Nahra quits (~user@static.161.95.99.88.clients.your-server.de) (Remote host closed the connection)
15:33:47 <bjs> I quite like point-free things, it really emphasises the declarative nature of things
15:34:20 Gurkenglas joins (~Gurkengla@dslb-002-203-144-204.002.203.pools.vodafone-ip.de)
15:34:50 [exa] sees scrollback
15:35:00 [exa] . o O ( what have I opened )
15:35:19 albet70 joins (~xxx@2400:8902::f03c:92ff:fe60:98d8)
15:36:15 <lechner> it might be a littleclearer if point free did not involve dots!
15:36:31 <geekosaur> maybe I spent too much time trying to wrap my head around APL way back when™ but I'm less than impressed with pointfree style
15:36:49 <razetime> pointfree is nice in APL for describing short things.
15:37:15 <razetime> the problem was when they decided the everything should be pointfree in J(and then later realizing why that was bad)
15:37:30 <geekosaur> oh, that attitude predated J
15:37:47 <geekosaur> pretty much everything in APL was pointfree too
15:38:04 <razetime> I don't think so?
15:38:21 <geekosaur> maybe it was just the training materials I had on hand
15:38:34 <razetime> From what I know, J got trains first, which was later added to Dyalog APL and others
15:38:37 <geekosaur> they pointfree-d anything they could. granting that was less than in J
15:39:17 <geekosaur> but they made a big deal of it
15:39:47 <lechner> is "tacit" style a clearer term? https://en.wikipedia.org/wiki/Tacit_programming
15:40:12 <razetime> yes, tacit is the term used in general. In APL/J/K these are called trains.
15:40:37 <lechner> that page also calls it "pointless", with an undertone
15:41:13 <hpc> lambdabot's @pl command is a nod to "pointless" as well
15:41:23 <lechner> i see
15:41:28 <razetime> after about 10 symbols i usually just switch to a lambda.
15:41:42 <razetime> (⊢∘≢≥∘⍋⊢∘⍳∘≢,⊣) is relatively readable once you know train rules.
15:42:13 × albet70 quits (~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection)
15:44:42 × burnsidesLlama quits (~burnsides@dhcp168-013.wadham.ox.ac.uk) (Remote host closed the connection)
15:48:20 albet70 joins (~xxx@2400:8902::f03c:92ff:fe60:98d8)
15:49:37 <lechner> naming things is one of the great privileges of language, and can make code easier to read, if less terse
15:49:50 lavaman joins (~lavaman@98.38.249.169)
15:53:28 <lechner> Hi, when encoding JSON with aeson and saving it as a file, who converts it to UTF-8 please? When injecting JSON into a Hasql.TH statement via Pg's 'json_populate_recordset', will the data get encoded twice?
15:54:09 sebau1995 joins (~sebau1995@138.117.21.68)
15:54:13 × lavaman quits (~lavaman@98.38.249.169) (Ping timeout: 240 seconds)
15:54:30 × sebau1995 quits (~sebau1995@138.117.21.68) (Client Quit)
15:54:41 <geekosaur> the I/O layer does, see hSetEncoding
15:55:00 <lechner> so it's late in the process
15:55:02 <geekosaur> I couldn't tell you about what in Hasql does it
15:55:07 <lechner> as it should be
15:55:12 <geekosaur> yes
15:56:32 <lechner> that mean aeson doesn't convert it, right?
15:57:33 pretty_dumm_guy joins (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655)
15:57:35 <lechner> or encode it, to be exact
15:58:03 wroathe joins (~wroathe@206-55-188-8.fttp.usinternet.com)
15:58:03 × wroathe quits (~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host)
15:58:03 wroathe joins (~wroathe@user/wroathe)
15:58:23 <geekosaur> that I don't know. although if aeson gives you a String it should not be encoded
15:58:35 <geekosaur> if it's a Text then it may be (see text 2.0)
15:58:46 × SummerSonw quits (~The_viole@203.77.49.232) (Ping timeout: 256 seconds)
15:59:09 <lechner> that's only internal though, isn't it?
15:59:17 × [itchyjunk] quits (~itchyjunk@user/itchyjunk/x-7353470) (Read error: Connection reset by peer)
15:59:26 ProfSimm joins (~ProfSimm@87.227.196.109)
15:59:28 <lechner> externally Text still represents code points?
15:59:28 <Clint> the question is how you're saving it to a file
16:00:01 <geekosaur> I think they're sending it to a database. that *should* be a binary protocol
16:00:01 <Clint> because it's the f.ex. String/Text->ByteString step that matters
16:00:27 <lechner> actually, i am not saving it at all. i want to send it to Postgres, but in Perl it leads to double encoding
16:00:29 <geekosaur> but I don't know where in that pipeline the conversion would happen, as Clint said
16:00:38 <lechner> i am migrating all my code
16:00:56 <lechner> you will be happy to hear!
16:01:11 <lechner> i think haskell is fine
16:01:20 <lechner> i love this language
16:01:45 <geekosaur> anyway I would probaly not encode it until I discovered it caused problems, since there should already be a proper encoding layer in place
16:02:09 <razetime> i just sarted haskell today with the book "Real World Haskell"
16:02:14 <razetime> I like its approach so far
16:02:20 <lechner> congrats!
16:02:58 <lechner> in perl i turn off all I/O layers
16:03:54 <lechner> but as usual haskell does the right thing (TM)
16:04:08 × Vajb quits (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Read error: Connection reset by peer)
16:04:16 Vajb joins (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi)
16:04:44 <lechner> Clint: thanks!
16:05:45 × Vajb quits (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Read error: Connection reset by peer)
16:05:50 <geekosaur> if they're doing t right then encoding should be the last thing that happens before handing the SQL or data off to libpq
16:05:53 Vajb joins (~Vajb@2001:999:50:e6be:1e98:9376:d93e:4506)
16:06:01 × ProfSimm quits (~ProfSimm@87.227.196.109) (Remote host closed the connection)
16:06:33 × xlei quits (~akans@pool-68-129-84-118.nycmny.fios.verizon.net) (Ping timeout: 256 seconds)
16:08:34 <lechner> it can be confusing because UTF-8 is part of the JSON spec https://datatracker.ietf.org/doc/html/rfc8259#section-8.1
16:09:13 <lechner> but aeson will work well!
16:09:14 × Vajb quits (~Vajb@2001:999:50:e6be:1e98:9376:d93e:4506) (Read error: Connection reset by peer)
16:09:40 Vajb joins (~Vajb@2001:999:50:e6be:1e98:9376:d93e:4506)
16:09:40 × Vajb quits (~Vajb@2001:999:50:e6be:1e98:9376:d93e:4506) (Read error: Connection reset by peer)
16:09:48 Vajb joins (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi)
16:10:09 jakalx parts (~jakalx@base.jakalx.net) (Error from remote client)
16:10:42 <lechner> thank you all for building this fine language. i wish i hadk found it ten years earlier
16:11:05 × ouestbillie quits (~gallup@192-222-138-215.qc.cable.ebox.net) (Ping timeout: 256 seconds)
16:11:39 × aouestbillie quits (~gallup@192-222-138-215.qc.cable.ebox.net) (Ping timeout: 256 seconds)
16:13:27 zmt00 joins (~zmt00@user/zmt00)
16:16:45 × Vajb quits (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Ping timeout: 256 seconds)
16:17:02 Vajb joins (~Vajb@2001:999:50:e6be:1e98:9376:d93e:4506)
16:18:10 roboguy joins (~roboguy@user/roboguy)
16:18:11 burnsidesLlama joins (~burnsides@dhcp168-013.wadham.ox.ac.uk)
16:19:39 <lechner> wow, APL is symbolic https://en.wikipedia.org/wiki/APL_syntax_and_symbols
16:20:22 jakalx joins (~jakalx@base.jakalx.net)
16:24:41 × burnsidesLlama quits (~burnsides@dhcp168-013.wadham.ox.ac.uk) (Ping timeout: 256 seconds)
16:27:41 shapr joins (~user@98.54.1.142)
16:30:18 × geekosaur quits (~geekosaur@xmonad/geekosaur) (Killed (NickServ (GHOST command used by allbery_b)))
16:30:18 allbery_b joins (~geekosaur@xmonad/geekosaur)
16:30:22 allbery_b is now known as geekosaur
16:32:09 <geekosaur> very symbolic. and used a lot of overprints
16:32:11 <razetime> yes, APL has its roots in math notation so it uses symbols.
16:32:27 <razetime> overprints?
16:32:47 <geekosaur> type a symbol, backspace over it, type another symbol on top
16:33:35 <geekosaur> think quote-quad for a common example
16:34:05 <razetime> ⍞?
16:34:14 stef204 joins (~stef204@user/stef204)
16:34:15 <razetime> well, i just have keyboard layout for it
16:34:28 <geekosaur> in unicode they gave them all distinct symbols because overprinting terminals are kinda rare these days
16:34:38 <hpc> on typewriters you might write a 0 by writing O backspace /
16:34:39 <geekosaur> but they started out on ttys
16:35:04 <geekosaur> but originally you did quote-quad as quad backspace quote
16:35:19 <geekosaur> and lamp was cap backspace circle
16:35:34 <razetime> bash has ~/.inputrc which allows an overprinting like setup.
16:35:59 <razetime> lamp is AltGr-, in the newer layouts
16:37:14 <geekosaur> damn I had fun experimenting with that stuff. parents weren't so happy when they got slapped with a $600 CPU time bill though (I'd had no idea they did that)
16:38:22 <razetime> wow, you must've been using the timesharing machines from the I.P. Sharp times
16:38:42 <geekosaur> they had fancy APL terminals by the time I was playing with it
16:38:52 <geekosaur> still did the overprinting thing
16:39:15 <razetime> that's like.. >40 years ago?
16:39:27 <geekosaur> this was 1981-82, I spent half days my senior HS year at CWRU
16:39:53 <geekosaur> so yes, 40 years ago
16:41:13 <razetime> very cool! Most people I encounter in the array community nowadays come up from older demo videos.
16:41:37 <razetime> it must've been something to try out apl in those times
16:41:50 coot joins (~coot@89-64-85-93.dynamic.chello.pl)
16:43:43 xlei joins (~akans@pool-108-54-97-84.nycmny.fios.verizon.net)
16:44:24 <geekosaur> also played with SPITBOL (IBM SNOBOL compiler), SAIL (variant of ALGOL-60 from Stanford), SIMULA, and I think there were a few others but can't recall them now
16:44:46 <geekosaur> took me a while to remember the name of SAIL, all I was recalling was that it was an ALGOL derivative
16:47:52 burnsidesLlama joins (~burnsides@dhcp168-013.wadham.ox.ac.uk)
16:49:01 <razetime> wonder how many of those still have implementations
16:49:48 <geekosaur> dunno. this was all on a DECsystem 20/60, they pulled the plug on the last of those years ago
16:49:52 slowButPresent joins (~slowButPr@user/slowbutpresent)
16:50:09 <geekosaur> oh, a bit of BLISS-10. which led to my learning about how PDP10s worked
16:51:16 <geekosaur> and explained why everything but SNOBOL was based on 6s instead of 8s
16:52:15 <geekosaur> on the other hand that meant I understood the TENEX directive in FTP when I discovered that a few years later
16:53:10 × shapr quits (~user@98.54.1.142) (Ping timeout: 256 seconds)
16:53:16 <razetime> i only recognize SNOBOL from there(and ALGOL, i guess)
16:53:55 × xlei quits (~akans@pool-108-54-97-84.nycmny.fios.verizon.net) (Quit: ZNC 1.9.x-git-167-81df4dec - https://znc.in)
16:54:07 <geekosaur> SIMULA's still used, I think
16:54:16 ouestbillie joins (~gallup@modemcable057.194-20-96.mc.videotron.ca)
16:54:16 aouestbillie joins (~gallup@modemcable057.194-20-96.mc.videotron.ca)
16:54:40 <geekosaur> simulation language generally considered to be the first object oriented language, using the actor model
16:54:44 xlei joins (~akans@pool-108-54-97-84.nycmny.fios.verizon.net)
16:55:39 <geekosaur> SNOBOL was replaced by Icon in much the same way APL was replaced by J then K
16:57:33 × edr quits (~edr@user/edr) (Ping timeout: 250 seconds)
16:57:45 edr joins (~edr@enlo.co)
16:57:45 × edr quits (~edr@enlo.co) (Changing host)
16:57:45 edr joins (~edr@user/edr)
16:57:59 × polux quits (~polux@51.15.169.172) (Ping timeout: 250 seconds)
16:58:13 polux joins (~polux@51.15.169.172)
16:58:23 <geekosaur> now I'm trying to imagine how different the programming world would be today if Unicon (Icon with a focus on Unix programming) had come along early enough to displace Perl
16:58:43 <razetime> APL hasn't quite been replaced yet, but BQN seems like a worthy successor now
16:58:51 × xsarnik quits (xsarnik@lounge.fi.muni.cz) (Ping timeout: 250 seconds)
16:59:06 xsarnik joins (xsarnik@lounge.fi.muni.cz)
16:59:16 <razetime> K is very different from the other two and my personal favourit
16:59:17 × n3t quits (~n3t@user/n3t) (Ping timeout: 250 seconds)
17:00:22 n3t joins (n3t@s45.mydevil.net)
17:01:20 × kawpuh quits (~kawpuh@66.42.81.80) (Ping timeout: 252 seconds)
17:01:30 kawpuh joins (~kawpuh@66.42.81.80)
17:01:53 × nerdypepper quits (~nerdypepp@user/nerdypepper) (Ping timeout: 250 seconds)
17:02:41 nerdypepper joins (~nerdypepp@user/nerdypepper)
17:02:56 nhatanh02 joins (~satori@123.24.172.30)
17:03:41 × c_wraith quits (~c_wraith@adjoint.us) (Ping timeout: 245 seconds)
17:03:52 c_wraith joins (~c_wraith@adjoint.us)
17:04:55 × Philonous quits (~Philonous@user/philonous) (Ping timeout: 250 seconds)
17:04:55 × clever quits (~clever@99.192.114.98) (Ping timeout: 250 seconds)
17:05:09 clever joins (~clever@99.192.114.98)
17:05:21 Philonous joins (~Philonous@user/philonous)
17:06:39 × AWizzArd quits (~code@user/awizzard) (Ping timeout: 250 seconds)
17:06:45 AWizzArd joins (~code@gehrels.uberspace.de)
17:06:46 × razetime quits (~quassel@49.207.213.63) (Ping timeout: 256 seconds)
17:07:56 × Patternmaster quits (~georg@li1192-118.members.linode.com) (Ping timeout: 252 seconds)
17:08:10 Patternmaster joins (~georg@li1192-118.members.linode.com)
17:08:16 × xerox quits (~edi@user/edi) (Ping timeout: 245 seconds)
17:08:25 xerox joins (~edi@user/edi)
17:10:04 <EvanR> A -> a, is Applicative. What are the requirements for A -> (B,a) to be Applicative... also what is this
17:10:45 <[exa]> EvanR: Monoid B?
17:11:01 <EvanR> that's why I was thinking, but didn't know if I was missing a more general thing
17:11:06 <EvanR> s/why/what/
17:11:06 × Vajb quits (~Vajb@2001:999:50:e6be:1e98:9376:d93e:4506) (Read error: Connection reset by peer)
17:11:07 <monochrom> Usually we want B to be a monoid. Then you have ReaderT A (Writer B).
17:11:15 Vajb joins (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi)
17:12:17 <EvanR> ok, mempty is "required" for pure
17:13:25 <monochrom> For foo<*>bar, "use <> to combine the two B's" is more general than "always prefer the B from foo" and "always prefer the B from bar".
17:13:41 × fluxit quits (~fluxit@techsmix.net) (Ping timeout: 245 seconds)
17:14:12 <monochrom> and is pivotal to associative laws of Applicative anyway.
17:14:36 <EvanR> crazy how Monoid keeps cropping up
17:14:53 × elvishjerricco quits (sid237756@helmsley.irccloud.com) (Ping timeout: 250 seconds)
17:15:02 elvishjerricco joins (sid237756@id-237756.helmsley.irccloud.com)
17:15:18 <EvanR> Applicative itself is a form of Monoid in some category, forgot the details
17:15:44 × tabemann quits (~tabemann@172-13-49-137.lightspeed.milwwi.sbcglobal.net) (Remote host closed the connection)
17:16:09 tabemann joins (~travisb@172-13-49-137.lightspeed.milwwi.sbcglobal.net)
17:16:13 <geekosaur> "strong lax monoidal functor" (looked it up to double check)
17:16:44 fluxit joins (~fluxit@techsmix.net)
17:18:21 × andreas303 quits (andreas303@ip227.orange.bnc4free.com) (Ping timeout: 250 seconds)
17:18:46 andreas303 joins (andreas303@ip227.orange.bnc4free.com)
17:21:49 × vysn quits (~vysn@user/vysn) (Ping timeout: 240 seconds)
17:23:26 × Everything quits (~Everythin@37.115.210.35) (Quit: leaving)
17:24:10 <EvanR> if I have type f and type g which are both Applicative, is the composition f `O` g Applicative
17:24:30 <[exa]> :k Compose
17:24:30 <lambdabot> error:
17:24:30 <lambdabot> Not in scope: type constructor or class ‘Compose’
17:24:34 <[exa]> ayay
17:24:41 <geekosaur> % :k Compose
17:24:41 <yahb> geekosaur: ; <interactive>:1:1: error: Not in scope: type constructor or class `Compose'
17:24:52 <geekosaur> % import Data.Compose
17:24:52 <yahb> geekosaur: ; <no location info>: error:; Could not find module `Data.Compose'; Perhaps you meant Data.Complex (from base-4.15.0.0)
17:24:57 <EvanR> oof
17:25:01 <[exa]> EvanR: basically https://hackage.haskell.org/package/base-4.16.0.0/docs/Data-Functor-Compose.html#t:Compose
17:25:04 <geekosaur> % import Control.Category
17:25:04 <yahb> geekosaur:
17:25:11 <geekosaur> oh
17:25:14 <geekosaur> % :k Compose
17:25:14 <yahb> geekosaur: ; <interactive>:1:1: error: Not in scope: type constructor or class `Compose'
17:25:28 <EvanR> that's cool, that they compose
17:25:45 <geekosaur> pretty sure they compose, but monads don't in general
17:25:54 × neurocyte0917 quits (~neurocyte@user/neurocyte) (Read error: Connection reset by peer)
17:26:39 DNH joins (~DNH@2a02:8108:1100:16d8:1c21:9777:b34f:a2a4)
17:26:52 <EvanR> let see what else Compose can do
17:26:53 neurocyte0917 joins (~neurocyte@IP-094046083160.dynamic.medianet-world.de)
17:26:53 × neurocyte0917 quits (~neurocyte@IP-094046083160.dynamic.medianet-world.de) (Changing host)
17:26:53 neurocyte0917 joins (~neurocyte@user/neurocyte)
17:27:51 Erutuon joins (~Erutuon@user/erutuon)
17:27:58 × Jing quits (~hedgehog@240e:390:7c53:a7e1:8d38:5b59:3c2d:440) (Quit: My MacBook has gone to sleep. ZZZzzz…)
17:28:07 eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
17:28:35 <EvanR> Functor, Foldable, Traversable, Semigroup, Monoid,
17:28:42 <[exa]> Alternative!
17:29:00 <EvanR> somehow two Contravariants isn't contravariant?
17:29:20 <[exa]> I'd guess that's a Functor
17:29:31 × a1paca quits (~a1paca@user/a1paca) (Ping timeout: 245 seconds)
17:29:35 <EvanR> oh... and we can't get to the same instance two ways
17:30:13 <[exa]> I'd say that the order is set by order of composing the types
17:30:20 a1paca joins (~a1paca@user/a1paca)
17:30:22 <[exa]> but that's a wild guess
17:31:09 wyrd joins (~wyrd@gateway/tor-sasl/wyrd)
17:31:12 <EvanR> no..
17:32:13 × eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 240 seconds)
17:34:23 × xlei quits (~akans@pool-108-54-97-84.nycmny.fios.verizon.net) (Ping timeout: 256 seconds)
17:39:17 <EvanR> Compose would be cool to have in lambdabot
17:40:53 <polyphem> % import Data.Functor.Compose
17:40:53 <yahb> polyphem:
17:40:56 <geekosaur> @let import Data.Functor Compose
17:40:56 <lambdabot> Parse failed: Parse error: Compose
17:41:02 <geekosaur> @let import Data.Functor.Compose
17:41:03 <lambdabot> Defined.
17:41:06 <geekosaur> there ya go
17:42:37 xlei joins (~akans@pool-71-190-222-100.nycmny.fios.verizon.net)
17:46:59 raym joins (~raym@user/raym)
17:47:17 lavaman joins (~lavaman@98.38.249.169)
17:47:58 × DNH quits (~DNH@2a02:8108:1100:16d8:1c21:9777:b34f:a2a4) (Quit: My MacBook has gone to sleep. ZZZzzz…)
17:48:02 × stef204 quits (~stef204@user/stef204) (Ping timeout: 268 seconds)
17:52:23 stef204 joins (~stef204@user/stef204)
17:52:58 waleee joins (~waleee@2001:9b0:21d:fc00:398f:b003:b90d:acf4)
17:59:58 × haritz quits (~hrtz@user/haritz) (Read error: Connection reset by peer)
18:02:42 × zaquest quits (~notzaques@5.130.79.72) (Remote host closed the connection)
18:03:44 <EvanR> > ((\x -> ("a",Sum x)) <> (\y -> ("b", Sum y))) 2
18:03:45 <lambdabot> ("ab",Sum {getSum = 4})
18:03:51 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 256 seconds)
18:04:18 <EvanR> :t Compose (\x -> ("a",Sum x)) <> Compose (\y -> ("b", Sum y))
18:04:19 <lambdabot> Semigroup (Compose ((->) a) ((,) [Char]) (Sum a)) => Compose ((->) a) ((,) [Char]) (Sum a)
18:05:24 DNH joins (~DNH@2a02:8108:1100:16d8:1c21:9777:b34f:a2a4)
18:05:25 <EvanR> > getCompose (Compose (\x -> ("a",Sum x)) <> Compose (\y -> ("b", Sum y))) 2
18:05:26 <lambdabot> error:
18:05:26 <lambdabot> • No instance for (Semigroup
18:05:26 <lambdabot> (Compose ((->) Integer) ((,) [Char]) (Sum Integer)))
18:05:30 <EvanR> :(
18:06:40 wroathe joins (~wroathe@206-55-188-8.fttp.usinternet.com)
18:06:40 × wroathe quits (~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host)
18:06:40 wroathe joins (~wroathe@user/wroathe)
18:07:47 haritz joins (~hrtz@2a02:8010:65b5:0:6009:6384:e3cb:2220)
18:07:48 × haritz quits (~hrtz@2a02:8010:65b5:0:6009:6384:e3cb:2220) (Changing host)
18:07:48 haritz joins (~hrtz@user/haritz)
18:08:04 <EvanR> > getCompose (Compose (\x -> ("a",Sum x)) <> Compose (\y -> ("b", Sum y))) (Sum 2)
18:08:05 <lambdabot> error:
18:08:06 <lambdabot> • No instance for (Semigroup
18:08:06 <lambdabot> (Compose ((->) (Sum Integer)) ((,) [Char]) (Sum (Su...
18:09:58 <EvanR> fixing that, it seems the problem is there's no instance specifically for (Sum Int -> (String, Sum Int))
18:11:07 <xerox> @unmtl State (Sum Int) String
18:11:07 <lambdabot> Sum Int -> (String, Sum Int)
18:12:30 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 256 seconds)
18:12:42 <EvanR> > getCompose (liftA2 (<>) (Compose (\x -> ("a",x))) (Compose (\y -> ("b",y)))) (Sum 2)
18:12:43 <lambdabot> ("ab",Sum {getSum = 4})
18:13:39 <EvanR> if monoiding directly doesn't work, switch to applicative
18:14:12 tzh joins (~tzh@c-24-21-73-154.hsd1.or.comcast.net)
18:14:37 × xlei quits (~akans@pool-71-190-222-100.nycmny.fios.verizon.net) (Ping timeout: 256 seconds)
18:14:53 xlei_ joins (~akans@pool-71-125-19-142.nycmny.fios.verizon.net)
18:15:01 <EvanR> this is really cool, should save writing a lot of Applicative instances
18:15:08 emad_ joins (~emad@156.214.64.147)
18:15:40 little_mac joins (~little_ma@2601:410:4300:3ce0:e09f:2436:e1e3:cca8)
18:16:21 eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
18:17:23 × emad_ quits (~emad@156.214.64.147) (Client Quit)
18:17:25 × waleee quits (~waleee@2001:9b0:21d:fc00:398f:b003:b90d:acf4) (Ping timeout: 240 seconds)
18:17:46 emad joins (~emad@156.214.64.147)
18:19:51 waleee joins (~waleee@2001:9b0:21d:fc00:398f:b003:b90d:acf4)
18:21:17 × xlei_ quits (~akans@pool-71-125-19-142.nycmny.fios.verizon.net) (Ping timeout: 240 seconds)
18:22:40 xlei joins (~akans@pool-71-125-19-142.nycmny.fios.verizon.net)
18:23:43 wroathe joins (~wroathe@206-55-188-8.fttp.usinternet.com)
18:23:43 × wroathe quits (~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host)
18:23:43 wroathe joins (~wroathe@user/wroathe)
18:23:57 × xlei quits (~akans@pool-71-125-19-142.nycmny.fios.verizon.net) (Client Quit)
18:25:45 xlei joins (~akans@pool-71-125-19-142.nycmny.fios.verizon.net)
18:28:05 × DNH quits (~DNH@2a02:8108:1100:16d8:1c21:9777:b34f:a2a4) (Quit: My MacBook has gone to sleep. ZZZzzz…)
18:31:01 × CiaoSen quits (~Jura@p200300c957347b002a3a4dfffe84dbd5.dip0.t-ipconnect.de) (Ping timeout: 240 seconds)
18:33:12 econo joins (uid147250@user/econo)
18:34:02 × lavaman quits (~lavaman@98.38.249.169) (Ping timeout: 256 seconds)
18:36:15 × dyeplexer quits (~dyeplexer@user/dyeplexer) (Remote host closed the connection)
18:36:16 × doyougnu quits (~doyougnu@c-73-25-202-122.hsd1.or.comcast.net) (Remote host closed the connection)
18:39:50 × juhp quits (~juhp@128.106.188.82) (Read error: Connection reset by peer)
18:40:19 zincy joins (~zincy@2a00:23c8:970c:4801:8d43:554e:d62c:915d)
18:59:46 ProfSimm joins (~ProfSimm@87.227.196.109)
19:10:18 × nhatanh02 quits (~satori@123.24.172.30) (Ping timeout: 256 seconds)
19:12:24 jakalx parts (~jakalx@base.jakalx.net) ()
19:13:40 × burnsidesLlama quits (~burnsides@dhcp168-013.wadham.ox.ac.uk) (Remote host closed the connection)
19:14:15 [itchyjunk] joins (~itchyjunk@user/itchyjunk/x-7353470)
19:14:30 coolnickname joins (uid531864@user/coolnickname)
19:15:46 jakalx joins (~jakalx@base.jakalx.net)
19:17:06 user01 joins (~aj@154.0.137.32)
19:19:37 × little_mac quits (~little_ma@2601:410:4300:3ce0:e09f:2436:e1e3:cca8) (Ping timeout: 240 seconds)
19:21:05 little_mac joins (~little_ma@c-24-127-188-93.hsd1.mi.comcast.net)
19:21:38 × deadmarshal quits (~deadmarsh@95.38.113.27) (Ping timeout: 256 seconds)
19:26:39 zzz joins (~z@user/zero)
19:29:08 cosimone joins (~user@2001:b07:ae5:db26:c24a:d20:4d91:1e20)
19:29:10 × zero quits (~z@user/zero) (Ping timeout: 268 seconds)
19:29:10 zzz is now known as zero
19:29:37 <ProfSimm> Let's imagine a hypothetical autocompletion feature where when you type a function you see a drop-down of all valid values on each argument.
19:30:09 <ProfSimm> So when you have a function that takes prime numbers as input, you see a dropdown of primes.
19:30:17 <ProfSimm> I wonder how feasible this is
19:30:26 texasmynsted parts (~texasmyns@99.96.221.112) (WeeChat 3.3)
19:30:53 <polyphem> ProfSimm: and a function that takes Integer ?
19:31:20 <ProfSimm> polux: list of all integers. Well it'll be lazily computed as you scroll. And you can type it to jump around the list
19:31:32 n3rdy1 joins (~n3rdy1@2600:1700:4570:3480::41)
19:31:49 <ProfSimm> polux: gets a bit tricky if it takes a double.
19:32:05 <ProfSimm> polux: that would need a box that scrolls in two directions. Mantissa and exponent.
19:32:23 <ProfSimm> :D
19:32:25 cosimone` joins (~user@93-47-228-11.ip115.fastwebnet.it)
19:33:40 <polyphem> ProfSimm: and a function that takes a complex number ?
19:33:46 <ProfSimm> polux: I was thinking about this in the context of implementing a record as a function taking fieldname as input. And needing autocompletion on that argument therefore.
19:34:01 <ProfSimm> polyphem: more dimensions
19:34:08 <polyphem> hehe
19:34:43 × cosimone quits (~user@2001:b07:ae5:db26:c24a:d20:4d91:1e20) (Ping timeout: 268 seconds)
19:35:24 <polyphem> autocompletion is done vie prefix trees
19:35:33 <polyphem> s/vie/via/
19:35:45 × matrox quits (~bc8147f2@cerf.good1.com) (Quit: CGI:IRC (Session timeout))
19:38:03 <monochrom> So I type in fmap...
19:39:43 × coot quits (~coot@89-64-85-93.dynamic.chello.pl) (Quit: coot)
19:40:25 coot joins (~coot@89-64-85-93.dynamic.chello.pl)
19:44:47 burnsidesLlama joins (~burnsides@dhcp168-013.wadham.ox.ac.uk)
19:45:19 × wyrd quits (~wyrd@gateway/tor-sasl/wyrd) (Quit: leaving)
19:47:25 Sgeo joins (~Sgeo@user/sgeo)
19:58:11 <lechner> Hi, do I have to use hasql-transactions to have transactions with hasql?
19:59:09 × n3t quits (n3t@s45.mydevil.net) (Changing host)
19:59:09 n3t joins (n3t@user/n3t)
20:01:42 wyrd joins (~wyrd@gateway/tor-sasl/wyrd)
20:01:50 vglfr joins (~vglfr@88.155.96.35)
20:04:03 <[itchyjunk]> https://bpa.st/SOHA
20:04:08 × cosimone` quits (~user@93-47-228-11.ip115.fastwebnet.it) (Ping timeout: 256 seconds)
20:04:46 cosimone` joins (~user@2001:b07:ae5:db26:c24a:d20:4d91:1e20)
20:07:38 juhp joins (~juhp@128.106.188.82)
20:07:55 <EvanR> I type in the first character of the source code for an MMO
20:08:13 × Inst quits (~delicacie@c-98-208-218-119.hsd1.fl.comcast.net) (Ping timeout: 240 seconds)
20:08:23 <EvanR> 🤑
20:11:29 × emad quits (~emad@156.214.64.147) (Quit: Leaving)
20:11:30 × vglfr quits (~vglfr@88.155.96.35) (Read error: Connection reset by peer)
20:11:52 emad joins (~emad@156.214.64.147)
20:12:09 vglfr joins (~vglfr@88.155.96.35)
20:12:34 user01 parts (~aj@154.0.137.32) ()
20:12:57 × cosimone` quits (~user@2001:b07:ae5:db26:c24a:d20:4d91:1e20) (Ping timeout: 268 seconds)
20:22:26 Inst joins (~delicacie@c-98-208-218-119.hsd1.fl.comcast.net)
20:23:06 <Inst> do you know where i can find a good tutorial on haskell type signatures?
20:23:16 <Inst> like, i'm fed up with meeting crap like ~ and forall
20:24:45 <[itchyjunk]> Hm, i have having a little brain dead movement. I have a function that takes 2 ints. but if the list doesn't have enough, it will only get one of the int. I am trying to figure out how to deal with this situation. go x _ = x isn't it :x
20:26:55 <polyphem> patttern match on all cases : go [] = ... ; go (x:y:xs) ; go [x] = error ...
20:27:18 <bjs> [itchyjunk]: is go the function that takes a list or the function that takes the 2 ints?
20:28:46 <[itchyjunk]> https://bpa.st/ZPXQ
20:28:49 <[itchyjunk]> takes 2 ints.
20:28:52 zaquest joins (~notzaques@5.130.79.72)
20:29:07 <[itchyjunk]> I am trying to understand why foldr1 didn't have the non exhaustive pattern issue but foldl1 does
20:29:10 <[itchyjunk]> ;_;
20:29:34 xmyst joins (~xmyst@ip5f5ac363.dynamic.kabel-deutschland.de)
20:30:30 <bjs> [itchyjunk]: did you mean minListl not minList at the bottom line?
20:30:30 × vglfr quits (~vglfr@88.155.96.35) (Read error: Connection reset by peer)
20:30:39 <[itchyjunk]> !
20:30:40 <[itchyjunk]> dangit
20:31:04 <[itchyjunk]> that was the bug?
20:31:07 <[itchyjunk]> /o\
20:31:07 lavaman joins (~lavaman@98.38.249.169)
20:31:15 vglfr joins (~vglfr@88.155.96.35)
20:31:28 <[itchyjunk]> works now..
20:32:21 × little_mac quits (~little_ma@c-24-127-188-93.hsd1.mi.comcast.net) (Remote host closed the connection)
20:33:31 <EvanR> Inst, tutorials... better go straight to the documentation
20:33:45 <Inst> back to haskell report 2010 it is, then
20:34:07 <EvanR> or the ghc manual
20:34:24 <geekosaur> the report won't have either forall or ~
20:34:24 <EvanR> if you're stuck on really advanced stuff
20:35:48 little_mac joins (~little_ma@2601:410:4300:3ce0:b17c:f0c6:752d:8263)
20:35:53 <c_wraith> the ghc manual is really quite readable
20:38:06 <geekosaur> mostly. iirc the stuff about ~ is less so
20:40:01 <EvanR> Inst, a ~ b is a Constraint that means a and b are the same type
20:40:18 <Inst> thank you so much
20:40:29 <Inst> trying to search through HPFFP
20:40:49 × ouestbillie quits (~gallup@modemcable057.194-20-96.mc.videotron.ca) (Ping timeout: 256 seconds)
20:40:49 × aouestbillie quits (~gallup@modemcable057.194-20-96.mc.videotron.ca) (Ping timeout: 256 seconds)
20:41:04 DNH joins (~DNH@2a02:8108:1100:16d8:1c21:9777:b34f:a2a4)
20:41:27 <EvanR> it goes in the same place as other constraints like Ord a, which means a has (to have) an Ord instance
20:42:02 <geekosaur> in general if you're seeing ~ as a constraint then you've kinda blown past the stuff most Haskell introductory courses cover
20:42:03 <Inst> i'm more looking for an authoritative reference on type signatures
20:42:25 <EvanR> it's complicated because there have been so many extensions
20:42:57 <EvanR> and some of them are really beyond everyday use case
20:43:32 × DNH quits (~DNH@2a02:8108:1100:16d8:1c21:9777:b34f:a2a4) (Client Quit)
20:43:47 × xff0x quits (~xff0x@2001:1a81:5298:9f00:c8df:ae8c:ee9b:1cca) (Ping timeout: 268 seconds)
20:43:50 <c_wraith> and there are things like type families that will look like nothing new in a type signature, but actually are very different.
20:44:13 <c_wraith> I kind of wish they had a different syntax, but it's far from clear what other syntax was available
20:44:19 xff0x joins (~xff0x@2001:1a81:5298:9f00:374f:4390:4780:3d6)
20:44:35 × vglfr quits (~vglfr@88.155.96.35) (Read error: Connection reset by peer)
20:44:36 <c_wraith> especially with the ability to hide them behind a type alias
20:45:29 vglfr joins (~vglfr@88.155.96.35)
20:46:02 <[itchyjunk]> oh a~b means there is a type equivalence ? interesting!
20:46:10 <[itchyjunk]> is this the precursor to HoTT stuff?
20:46:24 <c_wraith> No, it's mostly a result of adding GADTs to the language
20:46:38 <[itchyjunk]> hmm
20:46:43 <c_wraith> when you pattern match on a GADT constructor, you can add evidence to the current context that two types are equivalent
20:46:57 <c_wraith> the ~ syntax was added as a way to express that independently
20:47:04 <[itchyjunk]> algebriac datatypes. haven't come across those yet
20:47:41 <c_wraith> you've certainly come across algebraic datatypes. just not generalized ones. (all uses `data' to create a type create algebraic types)
20:47:43 <geekosaur> you probably have, just announced. but GADTs (generalized algebraic datatypes) are a bit different
20:48:54 × lavaman quits (~lavaman@98.38.249.169) (Ping timeout: 256 seconds)
20:49:00 cosimone joins (~user@2001:b07:ae5:db26:c24a:d20:4d91:1e20)
20:49:01 <geekosaur> *unannounced
20:49:08 <geekosaur> hm, how did I do that
20:49:34 <c_wraith> I do it all the time. It's way too easy.
20:52:13 × vglfr quits (~vglfr@88.155.96.35) (Read error: Connection reset by peer)
20:52:31 vglfr joins (~vglfr@88.155.96.35)
20:55:42 × rond_ quits (~rond_@2a01:115f:943:5e00:3fb6:23a4:a917:27c7) (Quit: Client closed)
20:56:17 × geekosaur quits (~geekosaur@xmonad/geekosaur) (Killed (NickServ (GHOST command used by allbery_b)))
20:56:17 allbery_b joins (~geekosaur@xmonad/geekosaur)
20:56:20 allbery_b is now known as geekosaur
20:57:47 × johnw quits (~johnw@76-234-69-149.lightspeed.frokca.sbcglobal.net) (Quit: ZNC - http://znc.in)
20:59:17 <Inst> EvanR: I took a preview of "type-level programming"
20:59:47 <Inst> immediately starts talking about cardinality and stuff, I'm faintly familiar with cardinality from popular science interpretations of Cantor, but your type-level stuff is really "wild"
21:00:32 <Inst> https://leanpub.com/thinking-with-types/
21:01:15 <EvanR> cardinality is either the number of values a type has, infinite, or you just jumped the shark and went to set theory, which is down the hall and to the left
21:02:20 × wyrd quits (~wyrd@gateway/tor-sasl/wyrd) (Quit: leaving)
21:02:28 × TonyStone quits (~TonyStone@2603-7080-8607-c36a-9cdb-69bc-753b-1e50.res6.spectrum.com) (Remote host closed the connection)
21:02:58 × _ht quits (~quassel@82-169-194-8.biz.kpn.net) (Remote host closed the connection)
21:04:03 wyrd joins (~wyrd@gateway/tor-sasl/wyrd)
21:04:12 × wyrd quits (~wyrd@gateway/tor-sasl/wyrd) (Client Quit)
21:06:18 wyrd joins (~wyrd@gateway/tor-sasl/wyrd)
21:06:31 × wyrd quits (~wyrd@gateway/tor-sasl/wyrd) (Client Quit)
21:07:00 wyrd joins (~wyrd@gateway/tor-sasl/wyrd)
21:07:56 <[itchyjunk]> lol
21:14:01 Garbanzo joins (~Garbanzo@2602:304:6eac:dc10::46)
21:14:33 DNH joins (~DNH@2a02:8108:1100:16d8:1c21:9777:b34f:a2a4)
21:14:49 ouestbillie joins (~gallup@192-222-138-215.qc.cable.ebox.net)
21:14:49 aouestbillie joins (~gallup@192-222-138-215.qc.cable.ebox.net)
21:17:05 × Inst quits (~delicacie@c-98-208-218-119.hsd1.fl.comcast.net) (Ping timeout: 256 seconds)
21:22:29 zebrag joins (~chris@user/zebrag)
21:24:12 × wyrd quits (~wyrd@gateway/tor-sasl/wyrd) (Quit: leaving)
21:30:36 × mikoto-chan quits (~mikoto-ch@esm-84-240-99-143.netplaza.fi) (Read error: Connection reset by peer)
21:32:37 sagax joins (~sagax_nb@user/sagax)
21:32:49 × emad quits (~emad@156.214.64.147) (Quit: Leaving)
21:33:51 mikoto-chan joins (~mikoto-ch@esm-84-240-99-143.netplaza.fi)
21:35:43 Guest3 joins (~Guest3@88.220.154.34)
21:35:59 × perrierjouet quits (~perrier-j@modemcable012.251-130-66.mc.videotron.ca) (Quit: WeeChat 3.4)
21:38:57 × emf quits (~emf@2620:10d:c090:400::5:9fd9) (Ping timeout: 240 seconds)
21:43:29 × anderson quits (~ande@user/anderson) (Ping timeout: 252 seconds)
21:43:36 shapr joins (~user@2601:7c0:c202:5190:6f6c:93b7:78e9:4fee)
21:44:57 anderson joins (~ande@user/anderson)
21:46:19 × __monty__ quits (~toonn@user/toonn) (Quit: leaving)
21:49:37 × ncopa3 quits (~ncopa@gbr2-dev1.alpinelinux.org) (Ping timeout: 250 seconds)
21:49:56 ncopa3 joins (~ncopa@gbr2-dev1.alpinelinux.org)
21:53:23 × haskl quits (~haskl@user/haskl) (Ping timeout: 252 seconds)
21:53:42 haskl joins (~haskl@user/haskl)
21:55:51 perrierjouet joins (~perrier-j@modemcable012.251-130-66.mc.videotron.ca)
21:56:33 × nshepperd quits (~nshepperd@li364-218.members.linode.com) (Ping timeout: 250 seconds)
21:56:36 × Square quits (~a@user/square) (Ping timeout: 245 seconds)
21:56:52 nshepperd joins (nshepperd@2600:3c03::f03c:92ff:fe28:92c9)
21:57:14 TonyStone joins (~TonyStone@2603-7080-8607-c36a-9cdb-69bc-753b-1e50.res6.spectrum.com)
21:57:30 × ezzieyguywuf quits (~Unknown@user/ezzieyguywuf) (Quit: leaving)
21:57:40 ezzieyguywuf joins (~Unknown@user/ezzieyguywuf)
21:59:27 Square joins (~a@user/square)
22:00:16 jgeerds joins (~jgeerds@55d4bbed.access.ecotel.net)
22:01:38 × dminuoso quits (~dminuoso@user/dminuoso) (Ping timeout: 252 seconds)
22:02:21 acidjnk_new3 joins (~acidjnk@p200300d0c7271e2764e98499ffbb1b91.dip0.t-ipconnect.de)
22:02:21 acidjnk joins (~acidjnk@p200300d0c7271e2764e98499ffbb1b91.dip0.t-ipconnect.de)
22:03:25 dminuoso joins (~dminuoso@user/dminuoso)
22:05:39 × pretty_dumm_guy quits (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Quit: WeeChat 3.4)
22:06:29 × TonyStone quits (~TonyStone@2603-7080-8607-c36a-9cdb-69bc-753b-1e50.res6.spectrum.com) (Remote host closed the connection)
22:06:48 × roboguy quits (~roboguy@user/roboguy) ()
22:09:04 <little_mac> cause theres an ai that can code does that mean someone can make a robot that can improve its self
22:09:07 <little_mac> oh no
22:09:40 <little_mac> a robot sleeping at night would be just its cpu re-compiling all its code and imporving
22:12:46 × zer0bitz_ quits (~zer0bitz@196.244.192.61) (Read error: Connection reset by peer)
22:13:13 <EvanR> riddle me this
22:13:26 <EvanR> :t head
22:13:27 <lambdabot> [a] -> a
22:13:58 <EvanR> well, imagine we're talking about Foldable. And you want to implement a 'safe head' using a fold.
22:14:15 <EvanR> by returning a Maybe.
22:14:35 <EvanR> how to do this without wrapping and unwrapping maybes
22:14:39 TonyStone joins (~TonyStone@cpe-74-76-51-197.nycap.res.rr.com)
22:14:47 <EvanR> wait, foldr
22:15:19 wyrd joins (~wyrd@gateway/tor-sasl/wyrd)
22:15:47 <EvanR> duh
22:16:02 <geekosaur> yeh, I didn't see the problem
22:18:04 <EvanR> I should have asked this about getting a maybe minimum
22:18:26 <EvanR> in which case you gotta traverse through all the values
22:23:19 × zincy quits (~zincy@2a00:23c8:970c:4801:8d43:554e:d62c:915d) (Remote host closed the connection)
22:24:24 zincy joins (~zincy@2a00:23c8:970c:4801:8d43:554e:d62c:915d)
22:26:02 dsrt^ joins (~dsrt@wsip-98-188-246-242.mc.at.cox.net)
22:26:56 <geekosaur> conceivably the unwraps/rewraps get optimized if ghc is smart enough to fuse the whole thing
22:27:30 <geekosaur> hm, guess not since it'll sometimes be Nothing and sometimes Just. feh
22:28:49 × zincy quits (~zincy@2a00:23c8:970c:4801:8d43:554e:d62c:915d) (Remote host closed the connection)
22:31:28 × coot quits (~coot@89-64-85-93.dynamic.chello.pl) (Ping timeout: 256 seconds)
22:31:33 × alMalsamo quits (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 276 seconds)
22:32:33 × mc47 quits (~mc47@xmonad/TheMC47) (Remote host closed the connection)
22:32:54 <Rembane> Will catMaybes make it faster?
22:33:27 <geekosaur> no?
22:33:57 × TonyStone quits (~TonyStone@cpe-74-76-51-197.nycap.res.rr.com) (Ping timeout: 240 seconds)
22:34:02 × eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
22:34:21 <geekosaur> hm, actually if there is any value in the list then only the first time is it Nothing. this might fuse after all
22:35:44 <geekosaur> and then "wrapping"/"unwrapping" is just writing/reading the correct offset
22:36:51 <geekosaur> which will be fixed because it's fused
22:37:27 <geekosaur> not sure ghc is smart enough to unroll the list once to get something fusible though
22:37:28 <EvanR> that... sounds slick... if it works
22:38:19 <geekosaur> that might be a question for #ghc
22:39:42 <geekosaur> hm, in fact it doesn't even need tounroll, just jump into the middle the first time through
22:40:01 <geekosaur> bypass the unwrap and comparison and store the value
22:41:01 × xmyst quits (~xmyst@ip5f5ac363.dynamic.kabel-deutschland.de) (Ping timeout: 240 seconds)
22:41:39 zincy joins (~zincy@2a00:23c8:970c:4801:8d43:554e:d62c:915d)
22:47:17 TonyStone joins (~TonyStone@2603-7080-8607-c36a-9cdb-69bc-753b-1e50.res6.spectrum.com)
22:50:34 × takuan quits (~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection)
22:55:21 Hayek1 joins (~xxx@rrcs-173-196-3-254.west.biz.rr.com)
22:55:25 × Brumaire quits (~quassel@81-64-14-121.rev.numericable.fr) (Ping timeout: 240 seconds)
22:55:58 × Hayek quits (~xxx@rrcs-173-196-3-254.west.biz.rr.com) (Read error: Connection reset by peer)
22:56:24 × machinedgod quits (~machinedg@24.105.81.50) (Ping timeout: 256 seconds)
22:57:50 alMalsamo joins (~alMalsamo@gateway/tor-sasl/almalsamo)
22:59:37 × shapr quits (~user@2601:7c0:c202:5190:6f6c:93b7:78e9:4fee) (Remote host closed the connection)
23:00:37 × Hayek1 quits (~xxx@rrcs-173-196-3-254.west.biz.rr.com) (Ping timeout: 240 seconds)
23:01:27 Hayek1 joins (~xxx@rrcs-173-196-3-254.west.biz.rr.com)
23:06:13 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 240 seconds)
23:08:42 Inst joins (~delicacie@c-98-208-218-119.hsd1.fl.comcast.net)
23:08:47 <Inst> technically they're infinite if they have type variables
23:08:49 <Inst> i suppose multiplication can't break you out of low cardinalities
23:09:11 eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
23:11:01 stvc joins (~stvc@192.241.166.39)
23:12:05 × zincy quits (~zincy@2a00:23c8:970c:4801:8d43:554e:d62c:915d) (Remote host closed the connection)
23:13:00 × shriekingnoise quits (~shrieking@186.137.144.80) (Quit: Quit)
23:15:44 × ezzieyguywuf quits (~Unknown@user/ezzieyguywuf) (Remote host closed the connection)
23:16:41 ezzieyguywuf joins (~Unknown@user/ezzieyguywuf)
23:19:23 × coolnickname quits (uid531864@user/coolnickname) (Quit: Connection closed for inactivity)
23:26:09 × alMalsamo quits (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 276 seconds)
23:26:13 × xb0o2 quits (~xb0o2@user/xb0o2) (Quit: Client closed)
23:28:09 <EvanR> if they have type variables, the question of cardinality is deferred until someone plugs in some concrete types
23:28:36 alMalsamo joins (~alMalsamo@gateway/tor-sasl/almalsamo)
23:28:44 <EvanR> a type indexed family of cardinalities
23:31:32 wroathe joins (~wroathe@206-55-188-8.fttp.usinternet.com)
23:31:32 × wroathe quits (~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host)
23:31:32 wroathe joins (~wroathe@user/wroathe)
23:35:55 × tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
23:37:49 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 240 seconds)
23:38:35 deadmarshal joins (~deadmarsh@95.38.231.124)
23:40:05 × waleee quits (~waleee@2001:9b0:21d:fc00:398f:b003:b90d:acf4) (Ping timeout: 252 seconds)
23:41:51 tromp joins (~textual@dhcp-077-249-230-040.chello.nl)
23:42:32 waleee joins (~waleee@h-98-128-229-110.NA.cust.bahnhof.se)
23:42:52 × deadmarshal quits (~deadmarsh@95.38.231.124) (Ping timeout: 256 seconds)
23:43:32 mcgroin joins (~mcgroin@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr)
23:53:51 machinedgod joins (~machinedg@24.105.81.50)
23:53:51 × tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
23:57:36 × ezzieyguywuf quits (~Unknown@user/ezzieyguywuf) (Ping timeout: 256 seconds)

All times are in UTC on 2022-01-08.