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.