2023-12-08 00:01:11 +0100 | misterfish | (~misterfis@84-53-85-146.bbserv.nl) (Ping timeout: 245 seconds) |
2023-12-08 00:01:34 +0100 | lottaquestions | (~nick@2607:fa49:503d:b200:7cfa:fcd1:a658:6a49) (Ping timeout: 268 seconds) |
2023-12-08 00:01:51 +0100 | mechap | (~mechap@user/mechap) (Quit: WeeChat 4.1.2) |
2023-12-08 00:02:35 +0100 | remedan | (~remedan@ip-94-112-0-18.bb.vodafone.cz) |
2023-12-08 00:06:26 +0100 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2023-12-08 00:11:10 +0100 | chomwitt | (~chomwitt@2a02:587:7a09:c300:1ac0:4dff:fedb:a3f1) (Ping timeout: 246 seconds) |
2023-12-08 00:16:07 +0100 | <DerDummNemetzkii> | how does one solve cyclic graph dependencies in haskell? |
2023-12-08 00:17:24 +0100 | <geekosaur> | symbolic references is one waty. "tying the knot" is another |
2023-12-08 00:17:36 +0100 | <geekosaur> | https://wiki.haskell.org/Tying_the_Knot |
2023-12-08 00:18:38 +0100 | <DerDummNemetzkii> | thanks |
2023-12-08 00:24:20 +0100 | alp_ | (~alp@2001:861:e3d6:8f80:27cf:eb18:e4f:ec96) (Ping timeout: 256 seconds) |
2023-12-08 00:26:52 +0100 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) |
2023-12-08 00:34:30 +0100 | peterbecich | (~Thunderbi@047-229-123-186.res.spectrum.com) |
2023-12-08 00:36:07 +0100 | <EvanR> | do you mean module dependencies |
2023-12-08 00:43:07 +0100 | <DerDummNemetzkii> | EvanR, aye |
2023-12-08 00:43:33 +0100 | <DerDummNemetzkii> | ModuleB imports ModuleA which imports ModuleB |
2023-12-08 00:43:54 +0100 | <geekosaur> | oh dear |
2023-12-08 00:43:56 +0100 | <EvanR> | an hs-boot file will tell ghc about the loops and allow the compilation to go through |
2023-12-08 00:43:59 +0100 | <EvanR> | however |
2023-12-08 00:44:07 +0100 | <EvanR> | probably best to just not do that |
2023-12-08 00:44:28 +0100 | <DerDummNemetzkii> | kinda hard to when I need modules to have a parent. |
2023-12-08 00:44:53 +0100 | <EvanR> | there is usually a way to refactor it so you don't have an import loop |
2023-12-08 00:45:37 +0100 | <DerDummNemetzkii> | But this is mandatory. I have, say, Car module which imports Engine and Engine needs a reference back to the parent called "car_owner" |
2023-12-08 00:45:38 +0100 | mechap | (~mechap@user/mechap) |
2023-12-08 00:45:59 +0100 | mmhat | (~mmh@p200300f1c7269374ee086bfffe095315.dip0.t-ipconnect.de) (Quit: WeeChat 4.1.2) |
2023-12-08 00:46:11 +0100 | wroathe | (~wroathe@user/wroathe) (Ping timeout: 245 seconds) |
2023-12-08 00:46:37 +0100 | alexherbo2 | (~alexherbo@2a02-8440-3341-7ea2-2192-55be-5512-22f8.rev.sfr.net) (Remote host closed the connection) |
2023-12-08 00:46:54 +0100 | <DerDummNemetzkii> | So that the engine knows what car it belongs to. |
2023-12-08 00:47:39 +0100 | peterbecich | (~Thunderbi@047-229-123-186.res.spectrum.com) (Ping timeout: 256 seconds) |
2023-12-08 00:53:45 +0100 | tremon | (~tremon@83.80.159.219) (Quit: getting boxed in) |
2023-12-08 00:56:21 +0100 | [itchyjunk] | (~itchyjunk@user/itchyjunk/x-7353470) |
2023-12-08 00:57:21 +0100 | pretty_dumm_guy | (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Quit: WeeChat 3.5) |
2023-12-08 00:58:41 +0100 | jargon | (~jargon@174-22-221-51.phnx.qwest.net) |
2023-12-08 01:02:24 +0100 | <monochrom> | I don't think you should split hair to the point that Engine and Car are split into two modules. |
2023-12-08 01:03:24 +0100 | <monochrom> | Especially since, for example, Engine refers to Car, it is not like Engine is "resuable for other things like Ships" anyway. |
2023-12-08 01:04:10 +0100 | idgaen | (~idgaen@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c) (Quit: WeeChat 4.1.1) |
2023-12-08 01:04:44 +0100 | <EvanR> | yeah you can easily put the mutually recursive type definitions in 1 module and have modules for the operations elsewhere that import that |
2023-12-08 01:05:13 +0100 | <EvanR> | one type per file is ... probably not a good hill to die on in haskell |
2023-12-08 01:08:32 +0100 | waleee | (~waleee@h-176-10-144-38.NA.cust.bahnhof.se) (Ping timeout: 256 seconds) |
2023-12-08 01:09:25 +0100 | Square2 | (~Square4@user/square) |
2023-12-08 01:10:18 +0100 | <int-e> | maybe if GHC was smarter about cyclic imports |
2023-12-08 01:10:47 +0100 | <int-e> | (though even then, do you really want to split your syntax tree into several files? for example.) |
2023-12-08 01:12:01 +0100 | Square | (~Square@user/square) (Ping timeout: 256 seconds) |
2023-12-08 01:22:30 +0100 | nate4 | (~nate@c-98-45-158-125.hsd1.ca.comcast.net) |
2023-12-08 01:23:12 +0100 | steew_ | (~steew@user/steew) |
2023-12-08 01:23:50 +0100 | steew_ | steew |
2023-12-08 01:23:59 +0100 | <geekosaur> | henning does… |
2023-12-08 01:25:40 +0100 | <Axman6> | DerDummNemetzkii: an alternative solution is to make the reference to car in the engine a type variable, data Engine' car = Engine {...}, then elsewhere you can have type Engine = Engine' Car |
2023-12-08 01:27:11 +0100 | nate4 | (~nate@c-98-45-158-125.hsd1.ca.comcast.net) (Ping timeout: 256 seconds) |
2023-12-08 01:31:54 +0100 | <monochrom> | The fundamental theorem of modules: mutual import, separate compilation,100% type inference: Pick two. |
2023-12-08 01:32:22 +0100 | <glguy> | That's pretty good that we get to pick 2 |
2023-12-08 01:32:45 +0100 | <c_wraith> | I'm really not all that wedded to separate compilation. |
2023-12-08 01:33:08 +0100 | <geekosaur> | I am, I have no intention of waiting for text or aeson to compile every time |
2023-12-08 01:33:21 +0100 | <monochrom> | For example, in *ML, they gave up the 3rd one. In fact, their best practice is that whether you have mutual imports or not, you still handwrite module signatures (we call them "hs-boot"s). |
2023-12-08 01:33:22 +0100 | <geekosaur> | (or more to the point, all the dependencies of dbus for my xmonad config…) |
2023-12-08 01:33:31 +0100 | <glguy> | doctor, it hurts when I use aeson |
2023-12-08 01:34:25 +0100 | <c_wraith> | I mean, javac has done mutual imports with pretty good dependency tracking to avoid unnecessary recompiler for 20 years |
2023-12-08 01:34:32 +0100 | <c_wraith> | *recompiles |
2023-12-08 01:35:05 +0100 | <monochrom> | Therefore, I don't understand why Haskellers complain so bitterly about having to write hs-boots for mutual imports and praise how "easy" it is in other languages. |
2023-12-08 01:35:42 +0100 | <monochrom> | c_wraith, javac did not do any type inference for 20 years. |
2023-12-08 01:35:52 +0100 | juri_ | (~juri@79.140.117.153) |
2023-12-08 01:36:14 +0100 | <monochrom> | And probably still do little or none today. |
2023-12-08 01:37:15 +0100 | <c_wraith> | well, for one, hs-boot files are not documented in a readable way. I've looked into using them before, and the conclusion I got was "it's better to use a worse module structure that doesn't need this" |
2023-12-08 01:37:27 +0100 | <monochrom> | But perhaps you can cite dynamically typed languages such as shell, tcl, and python. |
2023-12-08 01:38:39 +0100 | <glguy> | if backpack had found more adoption, maybe we'd be used to it more |
2023-12-08 01:39:14 +0100 | <c_wraith> | amusingly, I've used one portion of backpack repeatedly. It was documented well. |
2023-12-08 01:39:25 +0100 | flebron | (~flebron@2a00:79e1:abc:1208:c9ca:d32c:f1ea:8834) |
2023-12-08 01:43:55 +0100 | juri_ | (~juri@79.140.117.153) (Ping timeout: 276 seconds) |
2023-12-08 01:45:27 +0100 | <flebron> | Hi folks :) I'm implementing an idea by Oleg Kiselyov in his paper https://arxiv.org/pdf/1109.0784.pdf "Implementing Explicit and Finding Implicit Sharing in Embedded DSLs". I have this sort of structure: |
2023-12-08 01:45:28 +0100 | <flebron> | ``` |
2023-12-08 01:45:28 +0100 | <flebron> | data ExprF rep where |
2023-12-08 01:45:29 +0100 | <flebron> | ParamF :: Int -> ExprF rep |
2023-12-08 01:45:29 +0100 | <flebron> | ConstantF :: SomeArray -> ExprF rep |
2023-12-08 01:45:30 +0100 | <flebron> | AddF :: rep -> rep -> ExprF rep |
2023-12-08 01:45:30 +0100 | <flebron> | SubF :: rep -> rep -> ExprF rep |
2023-12-08 01:45:31 +0100 | <flebron> | ... |
2023-12-08 01:45:31 +0100 | <flebron> | deriving (Traversable, Foldable, Show, Functor, Ord, Eq) |
2023-12-08 01:45:32 +0100 | <flebron> | type Shaxpr = Fix ShaxprF |
2023-12-08 01:45:32 +0100 | <flebron> | ``` |
2023-12-08 01:45:33 +0100 | <flebron> | Now suppose I have some heavily nested expression tree, `tree :: Expr`. There are repeated subtrees here, and I'd like to dedup them. I thus create this function: |
2023-12-08 01:45:33 +0100 | <flebron> | ``` |
2023-12-08 01:45:34 +0100 | <flebron> | type LabelState = BiMap (ExprF Int) |
2023-12-08 01:45:34 +0100 | <flebron> | labeler :: ExprF Int -> State LabelState Int |
2023-12-08 01:45:35 +0100 | <flebron> | labeler expr = do |
2023-12-08 01:45:35 +0100 | <flebron> | m <- get |
2023-12-08 01:45:36 +0100 | <flebron> | let (k, m') = insert expr m |
2023-12-08 01:47:10 +0100 | sawilagar | (~sawilagar@user/sawilagar) (Ping timeout: 276 seconds) |
2023-12-08 01:47:26 +0100 | <monochrom> | What is ShaxprF? |
2023-12-08 01:48:35 +0100 | <flebron> | Just ExprF that I forgot to rename for this :) |
2023-12-08 01:48:47 +0100 | <flebron> | (I thought I gottem all...) |
2023-12-08 01:51:00 +0100 | mc47 | (~mc47@xmonad/TheMC47) (Remote host closed the connection) |
2023-12-08 01:54:23 +0100 | juri_ | (~juri@faikvm.com) |
2023-12-08 02:02:23 +0100 | califax | (~califax@user/califx) (Remote host closed the connection) |
2023-12-08 02:03:55 +0100 | califax | (~califax@user/califx) |
2023-12-08 02:11:41 +0100 | thegeekinside | (~thegeekin@189.217.90.224) () |
2023-12-08 02:13:06 +0100 | thegeekinside | (~thegeekin@189.217.90.224) |
2023-12-08 02:15:27 +0100 | carcif^ | (~carcif@c-98-242-74-66.hsd1.ga.comcast.net) (Remote host closed the connection) |
2023-12-08 02:19:23 +0100 | emmanuelux_ | (~emmanuelu@user/emmanuelux) |
2023-12-08 02:21:11 +0100 | emmanuelux | (~emmanuelu@user/emmanuelux) (Ping timeout: 260 seconds) |
2023-12-08 02:35:56 +0100 | wroathe | (~wroathe@207-153-38-140.fttp.usinternet.com) |
2023-12-08 02:35:56 +0100 | wroathe | (~wroathe@207-153-38-140.fttp.usinternet.com) (Changing host) |
2023-12-08 02:35:56 +0100 | wroathe | (~wroathe@user/wroathe) |
2023-12-08 02:36:24 +0100 | peterbecich | (~Thunderbi@047-229-123-186.res.spectrum.com) |
2023-12-08 02:44:49 +0100 | mixfix41 | (~plaguedog@user/mixfix41) (Ping timeout: 256 seconds) |
2023-12-08 02:57:26 +0100 | machinedgod | (~machinedg@93-138-62-133.adsl.net.t-com.hr) (Ping timeout: 245 seconds) |
2023-12-08 02:59:21 +0100 | machinedgod | (~machinedg@93-136-199-108.adsl.net.t-com.hr) |
2023-12-08 03:00:38 +0100 | wroathe | (~wroathe@user/wroathe) (Quit: leaving) |
2023-12-08 03:05:21 +0100 | machinedgod | (~machinedg@93-136-199-108.adsl.net.t-com.hr) (Ping timeout: 256 seconds) |
2023-12-08 03:06:43 +0100 | flebron | (~flebron@2a00:79e1:abc:1208:c9ca:d32c:f1ea:8834) (Quit: Client closed) |
2023-12-08 03:15:10 +0100 | Unicorn_Princess | (~Unicorn_P@user/Unicorn-Princess/x-3540542) (Remote host closed the connection) |
2023-12-08 03:20:48 +0100 | peterbecich | (~Thunderbi@047-229-123-186.res.spectrum.com) (Quit: peterbecich) |
2023-12-08 03:21:20 +0100 | peterbecich | (~Thunderbi@047-229-123-186.res.spectrum.com) |
2023-12-08 03:23:18 +0100 | Guest67 | (~Guest67@ec2-52-221-159-193.ap-southeast-1.compute.amazonaws.com) |
2023-12-08 03:23:31 +0100 | Guest67 | (~Guest67@ec2-52-221-159-193.ap-southeast-1.compute.amazonaws.com) (Client Quit) |
2023-12-08 03:30:36 +0100 | flebron | (~flebron@2a00:79e1:abc:1208:c9ca:d32c:f1ea:8834) |
2023-12-08 03:31:16 +0100 | flebron | (~flebron@2a00:79e1:abc:1208:c9ca:d32c:f1ea:8834) (Client Quit) |
2023-12-08 03:39:35 +0100 | thegeekinside | (~thegeekin@189.217.90.224) (Remote host closed the connection) |
2023-12-08 03:39:55 +0100 | ddellacosta | (~ddellacos@ool-44c73d16.dyn.optonline.net) |
2023-12-08 03:43:07 +0100 | jargon | (~jargon@174-22-221-51.phnx.qwest.net) (Remote host closed the connection) |
2023-12-08 03:43:22 +0100 | xff0x | (~xff0x@ai096045.d.east.v6connect.net) (Ping timeout: 255 seconds) |
2023-12-08 03:55:01 +0100 | tomith | (tomith@user/tomith) (Quit: tomith) |
2023-12-08 03:57:40 +0100 | peterbecich | (~Thunderbi@047-229-123-186.res.spectrum.com) (Ping timeout: 255 seconds) |
2023-12-08 04:00:04 +0100 | Tuplanolla | (~Tuplanoll@91-159-68-236.elisa-laajakaista.fi) (Quit: Leaving.) |
2023-12-08 04:08:15 +0100 | qqq | (~qqq@92.43.167.61) (Remote host closed the connection) |
2023-12-08 04:08:15 +0100 | Igloo | (~ian@2001:8b0:645c::210) (Ping timeout: 256 seconds) |
2023-12-08 04:17:00 +0100 | <iqubic> | I have a GHCI question. If I load a local file with ":l Foo" to load the definitions from "Foo.hs", is there a way to unload the definitions without killing GHCI and restarting it? |
2023-12-08 04:19:11 +0100 | <int-e> | apparently you can use ':l' without arguments |
2023-12-08 04:19:45 +0100 | <iqubic> | I see... That's cool. |
2023-12-08 04:20:11 +0100 | Igloo | (~ian@2001:8b0:645c::210) |
2023-12-08 04:27:08 +0100 | <ddellacosta> | TIL |
2023-12-08 04:27:32 +0100 | <ddellacosta> | I assumed that would reload Main |
2023-12-08 04:27:52 +0100 | <ddellacosta> | "Ok, no modules loaded." |
2023-12-08 04:28:57 +0100 | xff0x | (~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp) |
2023-12-08 04:35:42 +0100 | Igloo | (~ian@2001:8b0:645c::210) (Ping timeout: 260 seconds) |
2023-12-08 04:36:49 +0100 | Igloo | (~ian@matrix.chaos.earth.li) |
2023-12-08 04:36:52 +0100 | <int-e> | ddellacosta: there's a dedicated :r for reloading |
2023-12-08 04:40:39 +0100 | edr | (~edr@user/edr) (Quit: Leaving) |
2023-12-08 04:42:05 +0100 | Igloo | (~ian@matrix.chaos.earth.li) (Ping timeout: 240 seconds) |
2023-12-08 04:42:36 +0100 | terrorjack | (~terrorjac@2a01:4f8:c17:87f8::) (Quit: The Lounge - https://thelounge.chat) |
2023-12-08 04:44:06 +0100 | Igloo | (~ian@matrix.chaos.earth.li) |
2023-12-08 04:44:31 +0100 | td_ | (~td@i53870937.versanet.de) (Ping timeout: 245 seconds) |
2023-12-08 04:45:26 +0100 | nate4 | (~nate@c-98-45-158-125.hsd1.ca.comcast.net) |
2023-12-08 04:45:54 +0100 | terrorjack | (~terrorjac@2a01:4f8:c17:87f8::) |
2023-12-08 04:46:28 +0100 | td_ | (~td@i5387090D.versanet.de) |
2023-12-08 04:47:49 +0100 | <ddellacosta> | int-e: I guess I was conflating the two |
2023-12-08 04:47:54 +0100 | <ddellacosta> | thanks! |
2023-12-08 04:52:54 +0100 | finn_elija | (~finn_elij@user/finn-elija/x-0085643) |
2023-12-08 04:52:54 +0100 | FinnElija | (~finn_elij@user/finn-elija/x-0085643) (Killed (NickServ (Forcing logout FinnElija -> finn_elija))) |
2023-12-08 04:52:54 +0100 | finn_elija | FinnElija |
2023-12-08 04:53:08 +0100 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:a11c:b194:25be:95ba) (Remote host closed the connection) |
2023-12-08 04:53:23 +0100 | eggplantade | (~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net) |
2023-12-08 05:02:34 +0100 | ddellacosta | (~ddellacos@ool-44c73d16.dyn.optonline.net) (Ping timeout: 256 seconds) |
2023-12-08 05:04:08 +0100 | ddellacosta | (~ddellacos@ool-44c73d16.dyn.optonline.net) |
2023-12-08 05:10:21 +0100 | L29Ah | (~L29Ah@wikipedia/L29Ah) (Read error: Connection reset by peer) |
2023-12-08 05:11:00 +0100 | oneeyedalien | (~oneeyedal@user/oneeyedalien) |
2023-12-08 05:11:48 +0100 | mosul | (~mosul@user/vilya) |
2023-12-08 05:12:14 +0100 | mosul | (~mosul@user/vilya) (Client Quit) |
2023-12-08 05:12:50 +0100 | mosul | (~mosul@user/mosul) |
2023-12-08 05:16:14 +0100 | peterbecich | (~Thunderbi@047-229-123-186.res.spectrum.com) |
2023-12-08 05:17:53 +0100 | Nixkernal_ | (~Nixkernal@115.16.194.178.dynamic.wline.res.cust.swisscom.ch) |
2023-12-08 05:19:11 +0100 | Nixkernal | (~Nixkernal@115.16.194.178.dynamic.wline.res.cust.swisscom.ch) (Ping timeout: 264 seconds) |
2023-12-08 05:43:25 +0100 | aforemny | (~aforemny@i59F516CC.versanet.de) |
2023-12-08 05:44:06 +0100 | aforemny_ | (~aforemny@i59F516C0.versanet.de) (Ping timeout: 245 seconds) |
2023-12-08 05:45:00 +0100 | mosul | (~mosul@user/mosul) (Quit: Lost terminal) |
2023-12-08 05:46:41 +0100 | oneeyedalien | (~oneeyedal@user/oneeyedalien) (Quit: Leaving) |
2023-12-08 05:47:17 +0100 | Square2 | (~Square4@user/square) (Ping timeout: 256 seconds) |
2023-12-08 05:48:45 +0100 | nate4 | (~nate@c-98-45-158-125.hsd1.ca.comcast.net) (Ping timeout: 252 seconds) |
2023-12-08 05:49:06 +0100 | YuutaW | (~YuutaW@mail.yuuta.moe) (Ping timeout: 245 seconds) |
2023-12-08 05:53:10 +0100 | YuutaW | (~YuutaW@mail.yuuta.moe) |
2023-12-08 06:04:07 +0100 | ksqsf | (~user@2409:8a70:3c11:f3f0:f1d1:e7f:6014:caf7) |
2023-12-08 06:13:42 +0100 | lane | (~lane@pool-98-113-180-17.nycmny.fios.verizon.net) |
2023-12-08 06:16:04 +0100 | ksqsf | (~user@2409:8a70:3c11:f3f0:f1d1:e7f:6014:caf7) (ERC 5.5.0.29.1 (IRC client for GNU Emacs 29.1.90)) |
2023-12-08 06:43:33 +0100 | misterfish | (~misterfis@84-53-85-146.bbserv.nl) |
2023-12-08 06:47:57 +0100 | lg188 | (~lg188@82.18.98.230) (Quit: Ping timeout (120 seconds)) |
2023-12-08 06:48:17 +0100 | lg188 | (~lg188@82.18.98.230) |
2023-12-08 06:49:47 +0100 | lane1 | (~lane@pool-98-113-180-17.nycmny.fios.verizon.net) |
2023-12-08 06:52:43 +0100 | lane | (~lane@pool-98-113-180-17.nycmny.fios.verizon.net) (Ping timeout: 255 seconds) |
2023-12-08 06:56:54 +0100 | rosco | (~rosco@175.136.158.171) |
2023-12-08 06:59:49 +0100 | misterfish | (~misterfis@84-53-85-146.bbserv.nl) (Ping timeout: 276 seconds) |
2023-12-08 07:01:09 +0100 | misterfish | (~misterfis@84-53-85-146.bbserv.nl) |
2023-12-08 07:02:00 +0100 | _ht | (~Thunderbi@28-52-174-82.ftth.glasoperator.nl) |
2023-12-08 07:03:31 +0100 | euleritian | (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 255 seconds) |
2023-12-08 07:03:49 +0100 | euleritian | (~euleritia@dynamic-046-114-201-163.46.114.pool.telefonica.de) |
2023-12-08 07:07:58 +0100 | euleritian | (~euleritia@dynamic-046-114-201-163.46.114.pool.telefonica.de) (Read error: Connection reset by peer) |
2023-12-08 07:08:15 +0100 | euleritian | (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) |
2023-12-08 07:08:46 +0100 | trev | (~trev@user/trev) |
2023-12-08 07:14:14 +0100 | <EvanR> | that's the second day I got the star but did not understand why |
2023-12-08 07:16:49 +0100 | peterbecich | (~Thunderbi@047-229-123-186.res.spectrum.com) (Ping timeout: 256 seconds) |
2023-12-08 07:17:55 +0100 | takuan | (~takuan@178-116-218-225.access.telenet.be) |
2023-12-08 07:20:01 +0100 | <iqubic> | Heh... Yeah... today's puzzle is interesting. |
2023-12-08 07:20:22 +0100 | tcard | (~tcard@2400:4051:5801:7500:cf17:befc:ff82:5303) (Quit: Leaving) |
2023-12-08 07:20:38 +0100 | takuan | (~takuan@178-116-218-225.access.telenet.be) (Read error: Connection reset by peer) |
2023-12-08 07:21:16 +0100 | takuan | (~takuan@178-116-218-225.access.telenet.be) |
2023-12-08 07:22:32 +0100 | tcard | (~tcard@2400:4051:5801:7500:cf17:befc:ff82:5303) |
2023-12-08 07:23:13 +0100 | euleritian | (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Read error: Connection reset by peer) |
2023-12-08 07:23:52 +0100 | euleritian | (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) |
2023-12-08 07:25:56 +0100 | euleritian | (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Read error: Connection reset by peer) |
2023-12-08 07:26:50 +0100 | chomwitt | (~chomwitt@2a02:587:7a09:c300:1ac0:4dff:fedb:a3f1) |
2023-12-08 07:26:56 +0100 | euleritian | (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) |
2023-12-08 07:27:49 +0100 | echoreply | (~echoreply@45.32.163.16) (Quit: WeeChat 2.8) |
2023-12-08 07:27:50 +0100 | euleritian | (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Read error: Connection reset by peer) |
2023-12-08 07:29:08 +0100 | echoreply | (~echoreply@45.32.163.16) |
2023-12-08 07:29:19 +0100 | euleritian | (~euleritia@dynamic-046-114-201-163.46.114.pool.telefonica.de) |
2023-12-08 07:32:15 +0100 | euleritian | (~euleritia@dynamic-046-114-201-163.46.114.pool.telefonica.de) (Read error: Connection reset by peer) |
2023-12-08 07:32:34 +0100 | euleritian | (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) |
2023-12-08 07:33:31 +0100 | qqq | (~qqq@92.43.167.61) |
2023-12-08 07:34:17 +0100 | igemnace | (~ian@user/igemnace) |
2023-12-08 07:40:23 +0100 | euleritian | (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 252 seconds) |
2023-12-08 07:40:46 +0100 | <int-e> | Yeah, solving the stated problem properly is quite a bit of effort. |
2023-12-08 07:41:28 +0100 | euleritian | (~euleritia@dynamic-046-114-201-163.46.114.pool.telefonica.de) |
2023-12-08 07:46:04 +0100 | nate4 | (~nate@c-98-45-158-125.hsd1.ca.comcast.net) |
2023-12-08 07:47:59 +0100 | misterfish | (~misterfis@84-53-85-146.bbserv.nl) (Ping timeout: 264 seconds) |
2023-12-08 07:48:49 +0100 | mc47 | (~mc47@xmonad/TheMC47) |
2023-12-08 07:51:49 +0100 | nate4 | (~nate@c-98-45-158-125.hsd1.ca.comcast.net) (Ping timeout: 276 seconds) |
2023-12-08 07:58:25 +0100 | acidjnk_new | (~acidjnk@p200300d6e72b93646479aa555f408eaf.dip0.t-ipconnect.de) |
2023-12-08 08:14:38 +0100 | EvanR | (~EvanR@user/evanr) (Remote host closed the connection) |
2023-12-08 08:14:57 +0100 | EvanR | (~EvanR@user/evanr) |
2023-12-08 08:14:58 +0100 | <c_wraith> | I solved it properly |
2023-12-08 08:15:23 +0100 | <int-e> | I did too but not initially. |
2023-12-08 08:15:45 +0100 | <c_wraith> | It helped that I had code for <magical math function> lying around already |
2023-12-08 08:16:08 +0100 | notzmv | (~zmv@user/notzmv) (Ping timeout: 268 seconds) |
2023-12-08 08:17:40 +0100 | <int-e> | hmm I think that's not the hard part though |
2023-12-08 08:17:51 +0100 | sord937 | (~sord937@gateway/tor-sasl/sord937) |
2023-12-08 08:18:20 +0100 | <int-e> | but whatever, it's probably still too early to discuss details |
2023-12-08 08:21:15 +0100 | <c_wraith> | oh. I didn't anticipate the input would make that unnecessary |
2023-12-08 08:21:25 +0100 | <c_wraith> | So I just threw the industrial strength math at it. |
2023-12-08 08:21:58 +0100 | <c_wraith> | No thinking about whether I'm on a special case, just throw the stuff that handles all cases |
2023-12-08 08:33:58 +0100 | <probie> | I don't think there's anything wrong with "check for special case, and if so use fast algorithm", especially when the problem text and example both hint at it being the special case |
2023-12-08 08:37:07 +0100 | lane1 | (~lane@pool-98-113-180-17.nycmny.fios.verizon.net) (Ping timeout: 255 seconds) |
2023-12-08 08:38:40 +0100 | nitrix | (~nitrix@user/nitrix) (Quit: ZNC 1.8.2 - https://znc.in) |
2023-12-08 08:39:28 +0100 | nitrix | (~nitrix@user/nitrix) |
2023-12-08 08:39:45 +0100 | <int-e> | well since there's only one input we're closer to "don't even implement the general case" territory |
2023-12-08 08:40:43 +0100 | <Hooloovoo> | if there's only one input you're probably in "don't even bother with special case" territory |
2023-12-08 08:40:47 +0100 | <Hooloovoo> | just print the answer |
2023-12-08 08:41:05 +0100 | <int-e> | Hooloovoo: well... how do you find the answer? |
2023-12-08 08:41:47 +0100 | <Hooloovoo> | (I don't even know the question, I assume it's some sort of programming challenge thing?) |
2023-12-08 08:42:35 +0100 | <Hooloovoo> | (but yeah, you're right) |
2023-12-08 08:43:45 +0100 | drdo5 | (~drdo@bl14-14-49.dsl.telepac.pt) |
2023-12-08 08:45:43 +0100 | drdo | (~drdo@bl14-14-49.dsl.telepac.pt) (Ping timeout: 260 seconds) |
2023-12-08 08:45:43 +0100 | drdo5 | drdo |
2023-12-08 08:47:18 +0100 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
2023-12-08 08:47:55 +0100 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Client Quit) |
2023-12-08 08:48:28 +0100 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
2023-12-08 08:48:44 +0100 | eggplantade | (~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
2023-12-08 08:49:21 +0100 | <int-e> | Hooloovoo: I mean, sometimes you can find an answer with pen and paper and without writing any code. That's, of course, fine for challenges that only check the answer rather than testing a program on various inputs. But most of the time the computations are too unwieldy. |
2023-12-08 08:49:58 +0100 | <int-e> | The concrete context is Advent of Code (today, part 2). |
2023-12-08 08:50:08 +0100 | <int-e> | (Which you won't see without solving part 1.) |
2023-12-08 08:50:30 +0100 | euleritian | (~euleritia@dynamic-046-114-201-163.46.114.pool.telefonica.de) (Read error: Connection reset by peer) |
2023-12-08 08:50:48 +0100 | euleritian | (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) |
2023-12-08 08:51:25 +0100 | econo_ | (uid147250@id-147250.tinside.irccloud.com) (Quit: Connection closed for inactivity) |
2023-12-08 08:53:56 +0100 | <Hooloovoo> | I assume part 2 is just part 1 with way the heck more pairs? |
2023-12-08 08:54:52 +0100 | <probie> | Nah, advent of code almost always uses the same input data for both part 1 and part 2 |
2023-12-08 08:55:34 +0100 | <int-e> | "heck more pairs" - kind of correct though ;) |
2023-12-08 08:55:44 +0100 | <int-e> | just have to find the right pairs |
2023-12-08 08:56:34 +0100 | <int-e> | (this comment is not supposed to be helpful) |
2023-12-08 08:58:25 +0100 | Hooloovoo | didn't auth to find the actual input... just doesn't look like the tuple list is... especially interesting |
2023-12-08 08:58:52 +0100 | <int-e> | indeed part 1 isn't too interesting |
2023-12-08 09:04:07 +0100 | euleritian | (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 255 seconds) |
2023-12-08 09:04:33 +0100 | euleritian | (~euleritia@dynamic-046-114-201-163.46.114.pool.telefonica.de) |
2023-12-08 09:05:09 +0100 | misterfish | (~misterfis@87.215.131.102) |
2023-12-08 09:05:09 +0100 | euleritian | (~euleritia@dynamic-046-114-201-163.46.114.pool.telefonica.de) (Read error: Connection reset by peer) |
2023-12-08 09:05:27 +0100 | euleritian | (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) |
2023-12-08 09:08:53 +0100 | cods | (~fred@tuxee.net) (Ping timeout: 240 seconds) |
2023-12-08 09:10:20 +0100 | alp_ | (~alp@2001:861:e3d6:8f80:98df:4b4d:4787:7761) |
2023-12-08 09:13:00 +0100 | gmg | (~user@user/gehmehgeh) |
2023-12-08 09:14:16 +0100 | oo_miguel | (~Thunderbi@78-11-179-96.static.ip.netia.com.pl) |
2023-12-08 09:17:49 +0100 | fendor | (~fendor@2a02:8388:1605:d100:267b:1353:13d7:4f0c) |
2023-12-08 09:23:25 +0100 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:11bf:d345:9651:e652) |
2023-12-08 09:28:08 +0100 | lortabac | (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) |
2023-12-08 09:28:33 +0100 | machinedgod | (~machinedg@93-136-199-108.adsl.net.t-com.hr) |
2023-12-08 09:33:13 +0100 | mc47 | (~mc47@xmonad/TheMC47) (Remote host closed the connection) |
2023-12-08 09:37:47 +0100 | actioninja | (~actioninj@user/actioninja) |
2023-12-08 09:45:55 +0100 | Buggys | (Buggys@shelltalk.net) |
2023-12-08 09:46:44 +0100 | vpan | (~vpan@mail.elitnet.lt) |
2023-12-08 09:48:48 +0100 | qqq | (~qqq@92.43.167.61) (Remote host closed the connection) |
2023-12-08 09:53:45 +0100 | tzh | (~tzh@c-71-193-181-0.hsd1.or.comcast.net) (Quit: zzz) |
2023-12-08 09:54:29 +0100 | coot | (~coot@89-69-206-216.dynamic.chello.pl) |
2023-12-08 09:58:52 +0100 | ft | (~ft@p3e9bc784.dip0.t-ipconnect.de) (Quit: leaving) |
2023-12-08 10:03:17 +0100 | mechap | (~mechap@user/mechap) (Quit: WeeChat 4.1.2) |
2023-12-08 10:03:45 +0100 | chele | (~chele@user/chele) |
2023-12-08 10:04:06 +0100 | qqq | (~qqq@92.43.167.61) |
2023-12-08 10:21:22 +0100 | qqq | (~qqq@92.43.167.61) (Quit: leaving) |
2023-12-08 10:23:40 +0100 | notzmv | (~zmv@user/notzmv) |
2023-12-08 10:25:22 +0100 | cfricke | (~cfricke@user/cfricke) |
2023-12-08 10:25:43 +0100 | CiaoSen | (~Jura@2a05:5800:283:ec00:ca4b:d6ff:fec1:99da) |
2023-12-08 10:32:07 +0100 | azimut | (~azimut@gateway/tor-sasl/azimut) (Ping timeout: 240 seconds) |
2023-12-08 10:35:06 +0100 | bilegeek | (~bilegeek@2600:1008:b042:9b48:fb5c:1866:504a:bda4) (Quit: Leaving) |
2023-12-08 10:40:44 +0100 | idgaen | (~idgaen@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c) |
2023-12-08 10:47:52 +0100 | dhil | (~dhil@2001:8e0:2014:3100:7b3d:f8f2:337f:eb5a) |
2023-12-08 10:49:25 +0100 | kuribas | (~user@ip-188-118-57-242.reverse.destiny.be) |
2023-12-08 10:57:39 +0100 | mmhat | (~mmh@p200300f1c7269374ee086bfffe095315.dip0.t-ipconnect.de) |
2023-12-08 10:57:43 +0100 | Tuplanolla | (~Tuplanoll@91-159-68-236.elisa-laajakaista.fi) |
2023-12-08 11:02:49 +0100 | <trev> | does anyone know any blogs that write up details about solutions? i vaguely remember a haskell one but can't seem to find it |
2023-12-08 11:04:44 +0100 | <trev> | nevermind, it was mmhaskell but it looks like they aren't doing it this year (yet?) |
2023-12-08 11:09:47 +0100 | aliosablack | (~chomwitt@2a02:587:7a09:c300:1ac0:4dff:fedb:a3f1) |
2023-12-08 11:12:03 +0100 | wib_jonas | (~wib_jonas@business-37-191-60-209.business.broadband.hu) |
2023-12-08 11:12:22 +0100 | xff0x | (~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp) (Ping timeout: 255 seconds) |
2023-12-08 11:17:46 +0100 | Lord_of_Life | (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 255 seconds) |
2023-12-08 11:17:49 +0100 | Lord_of_Life_ | (~Lord@user/lord-of-life/x-2819915) |
2023-12-08 11:18:25 +0100 | rosco | (~rosco@175.136.158.171) (Quit: Lost terminal) |
2023-12-08 11:20:48 +0100 | Lord_of_Life_ | Lord_of_Life |
2023-12-08 11:22:07 +0100 | mmhat | (~mmh@p200300f1c7269374ee086bfffe095315.dip0.t-ipconnect.de) (Quit: WeeChat 4.1.2) |
2023-12-08 11:23:27 +0100 | lortabac | (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) (Ping timeout: 260 seconds) |
2023-12-08 11:24:33 +0100 | aliosablack | (~chomwitt@2a02:587:7a09:c300:1ac0:4dff:fedb:a3f1) (Quit: Leaving) |
2023-12-08 11:30:32 +0100 | anpad | (~pandeyan@user/anpad) (Quit: ZNC 1.8.2 - https://znc.in) |
2023-12-08 11:32:01 +0100 | lortabac | (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) |
2023-12-08 11:32:37 +0100 | anpad | (~pandeyan@user/anpad) |
2023-12-08 11:35:36 +0100 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2023-12-08 11:39:36 +0100 | phma | (~phma@2001:5b0:211b:f698:7c9e:ca7b:e453:391) (Read error: Connection reset by peer) |
2023-12-08 11:40:25 +0100 | phma | (~phma@host-67-44-208-50.hnremote.net) |
2023-12-08 11:40:57 +0100 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
2023-12-08 11:53:22 +0100 | Sgeo | (~Sgeo@user/sgeo) (Read error: Connection reset by peer) |
2023-12-08 11:58:50 +0100 | danza | (~francesco@rm-19-49-89.service.infuturo.it) |
2023-12-08 12:05:04 +0100 | cfricke | (~cfricke@user/cfricke) (Quit: WeeChat 4.0.5) |
2023-12-08 12:08:40 +0100 | swamp_ | (~zmt00@user/zmt00) (Ping timeout: 246 seconds) |
2023-12-08 12:09:45 +0100 | krei-se | (~krei-se@p5085dea2.dip0.t-ipconnect.de) (Quit: ZNC 1.8.2 - https://znc.in) |
2023-12-08 12:10:17 +0100 | cfricke | (~cfricke@user/cfricke) |
2023-12-08 12:10:21 +0100 | alexherbo2 | (~alexherbo@2a02-8440-b214-7d9d-0c9c-4724-3c34-5adb.rev.sfr.net) |
2023-12-08 12:14:19 +0100 | euleritian | (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 256 seconds) |
2023-12-08 12:14:43 +0100 | alexherbo2 | (~alexherbo@2a02-8440-b214-7d9d-0c9c-4724-3c34-5adb.rev.sfr.net) (Remote host closed the connection) |
2023-12-08 12:15:10 +0100 | euleritian | (~euleritia@77.22.252.56) |
2023-12-08 12:16:35 +0100 | akegalj | (~akegalj@78-1-90-118.adsl.net.t-com.hr) |
2023-12-08 12:19:00 +0100 | krei-se | (~krei-se@p5085dea2.dip0.t-ipconnect.de) |
2023-12-08 12:23:24 +0100 | <akegalj> | I am solving day8 advent of code atm and I am confused why this leaks https://github.com/akegalj/algorithms_playground/blob/master/advent-of-code/2023/Day8.hs#L16 ? I didn't yet profile it or dumped core to see details but my intuition says this shouldn't leak. Its basically `findIndex (..) . scanl (..) . cycle` . My intuition is that this should compile to efficient lazy stream |
2023-12-08 12:23:33 +0100 | alexherbo2 | (~alexherbo@2a02-8440-b214-7d9d-2de4-00d5-d93d-0252.rev.sfr.net) |
2023-12-08 12:28:31 +0100 | <hippoid> | is there a way to index into Text values, like give me the 5th element? or do you have to context Text to [Char]? |
2023-12-08 12:28:47 +0100 | lortabac | (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) (Ping timeout: 260 seconds) |
2023-12-08 12:29:15 +0100 | <akegalj> | hippoid: https://hackage.haskell.org/package/text-2.1/docs/Data-Text.html#v:index |
2023-12-08 12:30:04 +0100 | <danza> | thanks akegalj |
2023-12-08 12:30:56 +0100 | <hippoid> | thanks akegalj! |
2023-12-08 12:31:00 +0100 | <akegalj> | note that it is O(n) |
2023-12-08 12:32:56 +0100 | <hippoid> | yeah, thats a clue there's a better way to do what i want |
2023-12-08 12:35:02 +0100 | <dminuoso_> | hippoid: What does "5th element" even mean to you? |
2023-12-08 12:35:11 +0100 | <dminuoso_> | What is an "element"? |
2023-12-08 12:35:36 +0100 | <dminuoso_> | Are you talking byte? If yes, which encoding? Are you talking unicode code point? Are you talking glyphs? What about ligatures? |
2023-12-08 12:36:31 +0100 | machinedgod | (~machinedg@93-136-199-108.adsl.net.t-com.hr) (Ping timeout: 255 seconds) |
2023-12-08 12:36:33 +0100 | <danza> | that interface returns a Char though |
2023-12-08 12:38:41 +0100 | <akegalj> | danza: if you are using ascii then bytestring might be better as it has O(1) indexing (https://hackage.haskell.org/package/bytestring-0.12.0.2/docs/Data-ByteString.html#v:index) |
2023-12-08 12:39:26 +0100 | <danza> | makes sense, not sure what hippoid is using |
2023-12-08 12:40:44 +0100 | <danza> | Char does not have to be ASCII though, or does it? |
2023-12-08 12:40:55 +0100 | <dminuoso_> | Char represents unicode codepoints. |
2023-12-08 12:41:02 +0100 | <danza> | cheers |
2023-12-08 12:41:56 +0100 | <akegalj> | danza: Word8 from bytestring can canpture ascii, Char is unicode |
2023-12-08 12:44:05 +0100 | FinnElija | (~finn_elij@user/finn-elija/x-0085643) (Killed (NickServ (Forcing logout FinnElija -> finn_elija))) |
2023-12-08 12:44:05 +0100 | finn_elija | (~finn_elij@user/finn-elija/x-0085643) |
2023-12-08 12:44:05 +0100 | finn_elija | FinnElija |
2023-12-08 12:44:22 +0100 | <hippoid> | it's all ascii, i think i can just switch to bytestring |
2023-12-08 12:44:43 +0100 | <dminuoso_> | That's going to be a lot faster, then. |
2023-12-08 12:45:18 +0100 | <dminuoso_> | Sometimes Im a bit sad about the state of text in Haskell. |
2023-12-08 12:45:31 +0100 | <danza> | text or Text? |
2023-12-08 12:45:47 +0100 | <dminuoso_> | Yes. |
2023-12-08 12:45:56 +0100 | sawilagar | (~sawilagar@user/sawilagar) |
2023-12-08 12:46:00 +0100 | <dminuoso_> | Everything text related. |
2023-12-08 12:46:15 +0100 | <dminuoso_> | Show, Read, parsing, pretty printing, Text, String, ByteString. |
2023-12-08 12:46:57 +0100 | <dminuoso_> | (And yes, I realize ByteString is a general binary buffers interface - it pops up often when interfacing with text native libraries) |
2023-12-08 12:47:12 +0100 | <danza> | wow, parsing even |
2023-12-08 12:48:39 +0100 | <danza> | what is wrong with Show and Read? |
2023-12-08 12:48:45 +0100 | <dminuoso_> | Literally everything. |
2023-12-08 12:49:01 +0100 | <dminuoso_> | They dont do what most users think it does. |
2023-12-08 12:49:25 +0100 | <dminuoso_> | Show is a debugging crutsh, and read is.. well a poor mans eval. |
2023-12-08 12:50:12 +0100 | <dminuoso_> | Read/Show both go through String - which if you ever use Text imposes a T.unpack/T.pack onto every all site. |
2023-12-08 12:50:39 +0100 | <danza> | i can live with that. I like Show, at least. I think there is work in progress to give Read a better interface. Its partiality is not the best |
2023-12-08 12:50:57 +0100 | <dminuoso_> | The partiality is honestly the one thing I could somewhat live with. |
2023-12-08 12:51:52 +0100 | <dminuoso_> | The thing with Show is that the deriving generated interface must yield a valid haskell expression that evaluates back to the "same" (whatever that even means) value. |
2023-12-08 12:52:08 +0100 | <dminuoso_> | You have no format control |
2023-12-08 12:52:10 +0100 | <dminuoso_> | It produces String. |
2023-12-08 12:53:22 +0100 | <dminuoso_> | Say you have `data IPv4 = IPv4 Word32` |
2023-12-08 12:53:39 +0100 | <dminuoso_> | And you do `show (myIP :: IPv4)` you would really expect it to print something like "127.0.0.1", right? |
2023-12-08 12:54:01 +0100 | <danza> | depends |
2023-12-08 12:54:58 +0100 | <danza> | > data I = I String; show I "127.0.0.0" |
2023-12-08 12:55:00 +0100 | <lambdabot> | <hint>:1:1: error: parse error on input ‘data’ |
2023-12-08 12:55:02 +0100 | [_] | (~itchyjunk@user/itchyjunk/x-7353470) |
2023-12-08 12:56:31 +0100 | <danza> | % data I = I String; show $ I "127.0.0.1" |
2023-12-08 12:56:31 +0100 | <yahb2> | <interactive>:95:20: error: ; Parse error: module header, import declaration ; or top-level declaration expected. |
2023-12-08 12:57:25 +0100 | <danza> | hmm i thought i had seen ; used there before, but maybe it had been defined |
2023-12-08 12:57:33 +0100 | <danza> | % data I = I String |
2023-12-08 12:57:33 +0100 | <yahb2> | <no output> |
2023-12-08 12:57:37 +0100 | L29Ah | (~L29Ah@wikipedia/L29Ah) |
2023-12-08 12:57:57 +0100 | <danza> | % show $ I "127.0.0.1" |
2023-12-08 12:57:57 +0100 | <yahb2> | <interactive>:99:1: error: ; • No instance for (Show I) arising from a use of ‘show’ ; • In the first argument of ‘($)’, namely ‘show’ ; In the expression: show $ I "127.0.0.1" ; ... |
2023-12-08 12:58:06 +0100 | <danza> | % data I = I String deriving Show |
2023-12-08 12:58:06 +0100 | <yahb2> | <no output> |
2023-12-08 12:58:08 +0100 | <danza> | % show $ I "127.0.0.1" |
2023-12-08 12:58:08 +0100 | <yahb2> | "I \"127.0.0.1\"" |
2023-12-08 12:58:29 +0100 | [itchyjunk] | (~itchyjunk@user/itchyjunk/x-7353470) (Ping timeout: 240 seconds) |
2023-12-08 12:58:47 +0100 | <danza> | the type prefix? Is that annoying you? |
2023-12-08 13:01:18 +0100 | <tromp> | i tried (a->b,a->c) -> a -> (b,c) in hoogle and was surprised to get no results |
2023-12-08 13:01:36 +0100 | kuribas | (~user@ip-188-118-57-242.reverse.destiny.be) (Ping timeout: 252 seconds) |
2023-12-08 13:01:59 +0100 | <danza> | did you try with (a->b) -> (a->c) and the rest the same? |
2023-12-08 13:02:33 +0100 | <danza> | :t uncurry |
2023-12-08 13:02:34 +0100 | <lambdabot> | (a -> b -> c) -> (a, b) -> c |
2023-12-08 13:02:41 +0100 | <anon1123> | hi! im having difficulty finding the correct way to indent. i wish to know how to place the expression after the `do` in multiple lines in the exampolary 3 lines i will paste: |
2023-12-08 13:02:44 +0100 | <anon1123> | f i |
2023-12-08 13:02:46 +0100 | <anon1123> | | i > 0 = do i <- 1 + 1; i |
2023-12-08 13:02:48 +0100 | <anon1123> | | otherwise = 2 |
2023-12-08 13:02:50 +0100 | <anon1123> | --- |
2023-12-08 13:03:59 +0100 | lortabac | (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) |
2023-12-08 13:04:00 +0100 | <tromp> | @danza ah thx, that works |
2023-12-08 13:04:00 +0100 | <lambdabot> | Unknown command, try @list |
2023-12-08 13:04:37 +0100 | <danza> | oh was not familiar with do without {}, that must be where i have seen the floating ; here, without noticing the `do` |
2023-12-08 13:05:23 +0100 | <ncf> | is anything mathematically interesting known about haskell's First and Last monoids? are they free functors into some interesting subcategory of monoids? |
2023-12-08 13:07:44 +0100 | <anon1123> | 3> {}s |
2023-12-08 13:07:48 +0100 | <anon1123> | ^ thanks, danza |
2023-12-08 13:08:06 +0100 | <danza> | that was it? Alright then XD |
2023-12-08 13:11:44 +0100 | Lears | (~Leary]@user/Leary/x-0910699) |
2023-12-08 13:14:03 +0100 | yaroot | (~yaroot@2400:4052:ac0:d900:1cf4:2aff:fe51:c04c) (Ping timeout: 260 seconds) |
2023-12-08 13:14:10 +0100 | [Leary] | (~Leary]@user/Leary/x-0910699) (Ping timeout: 260 seconds) |
2023-12-08 13:17:25 +0100 | tremon | (~tremon@83.80.159.219) |
2023-12-08 13:17:26 +0100 | lortabac | (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) (Ping timeout: 245 seconds) |
2023-12-08 13:20:51 +0100 | whatsupdoc | (uid509081@id-509081.hampstead.irccloud.com) (Quit: Connection closed for inactivity) |
2023-12-08 13:23:03 +0100 | lortabac | (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) |
2023-12-08 13:23:57 +0100 | xff0x | (~xff0x@2405:6580:b080:900:9024:2952:42f7:bdd9) |
2023-12-08 13:26:43 +0100 | misterfish | (~misterfis@87.215.131.102) (Ping timeout: 246 seconds) |
2023-12-08 13:26:54 +0100 | danza | (~francesco@rm-19-49-89.service.infuturo.it) (Ping timeout: 252 seconds) |
2023-12-08 13:27:02 +0100 | alexherbo2 | (~alexherbo@2a02-8440-b214-7d9d-2de4-00d5-d93d-0252.rev.sfr.net) (Remote host closed the connection) |
2023-12-08 13:27:22 +0100 | yaroot | (~yaroot@p3152107-ipngn5801souka.saitama.ocn.ne.jp) |
2023-12-08 13:28:09 +0100 | wib_jonas | (~wib_jonas@business-37-191-60-209.business.broadband.hu) (Quit: Client closed) |
2023-12-08 13:40:19 +0100 | cods | (~fred@tuxee.net) |
2023-12-08 13:44:26 +0100 | cfricke | (~cfricke@user/cfricke) (Quit: WeeChat 4.0.5) |
2023-12-08 13:54:00 +0100 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2023-12-08 14:01:08 +0100 | <ncf> | answering my own question: Data.Semigroup.First (resp. Last) is the free left zero (resp. right zero) semigroup on a set (this is even an equivalence rather than just an adjunction), and Data.Monoid.First (resp. Last) is the free monoid on that semigroup |
2023-12-08 14:01:35 +0100 | <ncf> | (i.e. Monoid.First a has the same Monoid instance as Maybe (Semigroup.First a)) |
2023-12-08 14:09:58 +0100 | xff0x | (~xff0x@2405:6580:b080:900:9024:2952:42f7:bdd9) (Ping timeout: 256 seconds) |
2023-12-08 14:10:13 +0100 | danza | (~francesco@151.47.82.6) |
2023-12-08 14:11:51 +0100 | xff0x | (~xff0x@2405:6580:b080:900:9024:2952:42f7:bdd9) |
2023-12-08 14:13:44 +0100 | <danza> | that sounds interesting ncf although i only have a very vague understanding of what it means... |
2023-12-08 14:22:16 +0100 | danza | (~francesco@151.47.82.6) (Quit: Leaving) |
2023-12-08 14:22:33 +0100 | danza | (~francesco@151.47.82.6) |
2023-12-08 14:22:43 +0100 | rncwnd | (~quassel@2a01:4f8:221:27c6::1) (Quit: Later) |
2023-12-08 14:23:32 +0100 | rncwnd | (~quassel@2a01:4f8:221:27c6::1) |
2023-12-08 14:24:10 +0100 | Lycurgus | (~georg@user/Lycurgus) (Quit: leaving) |
2023-12-08 14:24:27 +0100 | Lycurgus | (~georg@user/Lycurgus) |
2023-12-08 14:25:47 +0100 | danza | (~francesco@151.47.82.6) (Client Quit) |
2023-12-08 14:26:04 +0100 | danza | (~danza@151.47.82.6) |
2023-12-08 14:26:57 +0100 | rncwnd | (~quassel@2a01:4f8:221:27c6::1) (Client Quit) |
2023-12-08 14:27:23 +0100 | rncwnd | (~quassel@2a01:4f8:221:27c6::1) |
2023-12-08 14:31:14 +0100 | lortabac | (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) (Quit: WeeChat 4.1.1) |
2023-12-08 14:35:37 +0100 | <sshine> | I wonder when that is useful. I don't think I ever was aware that I worked with a monoid that only had left or right zeros, or worked with code where it was beneficial to constrain it to only need a left or a right zero. |
2023-12-08 14:36:00 +0100 | lortabac | (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) |
2023-12-08 14:44:20 +0100 | euleritian | (~euleritia@77.22.252.56) (Read error: Connection reset by peer) |
2023-12-08 14:45:37 +0100 | euleritian | (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) |
2023-12-08 14:48:58 +0100 | kuribas | (~user@ip-188-118-57-242.reverse.destiny.be) |
2023-12-08 14:49:33 +0100 | <akegalj> | `findIndex (const False) $ iterate id 0` leaks memory. Why is that? I would expect this to loop forever but not to leak |
2023-12-08 14:50:21 +0100 | Square | (~Square@user/square) |
2023-12-08 14:51:50 +0100 | <danza> | @source findIndex |
2023-12-08 14:51:50 +0100 | <lambdabot> | Unknown command, try @list |
2023-12-08 14:52:39 +0100 | euleritian | (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 268 seconds) |
2023-12-08 14:52:39 +0100 | L29Ah | (~L29Ah@wikipedia/L29Ah) (Read error: Connection reset by peer) |
2023-12-08 14:53:16 +0100 | <akegalj> | danza: from Data.List.findIndex |
2023-12-08 14:53:24 +0100 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) (Quit: = "") |
2023-12-08 14:53:25 +0100 | euleritian | (~euleritia@dynamic-046-114-201-059.46.114.pool.telefonica.de) |
2023-12-08 14:53:45 +0100 | <danza> | i think there is a command to show the source here |
2023-12-08 14:56:49 +0100 | <danza> | @src findIndex |
2023-12-08 14:56:49 +0100 | <lambdabot> | findIndex p = listToMaybe . findIndices p |
2023-12-08 14:57:02 +0100 | <danza> | @src findIndices |
2023-12-08 14:57:02 +0100 | <lambdabot> | findIndices p xs = [ i | (x,i) <- zip xs [0..], p x] |
2023-12-08 14:59:03 +0100 | <danza> | akegalj... `const False` will go through the whole list |
2023-12-08 14:59:47 +0100 | <ncf> | well yes it diverges, but it could diverge in constant space |
2023-12-08 15:00:24 +0100 | <akegalj> | ncf: yes I would expect to do it in constant space |
2023-12-08 15:01:00 +0100 | <danza> | there is not discarding of evaluating items until the function finishes and memory is freed, i think |
2023-12-08 15:01:06 +0100 | <danza> | *evaluated |
2023-12-08 15:02:25 +0100 | kuribas | (~user@ip-188-118-57-242.reverse.destiny.be) (Remote host closed the connection) |
2023-12-08 15:02:33 +0100 | zer0bitz_ | zer0bitz |
2023-12-08 15:02:36 +0100 | kuribas | (~user@ip-188-118-57-242.reverse.destiny.be) |
2023-12-08 15:03:18 +0100 | <danza> | but i would not consider this a "leak", it is expected |
2023-12-08 15:03:29 +0100 | <ncf> | what |
2023-12-08 15:03:43 +0100 | <akegalj> | danza: that seems so strange. Why would findIndex retain element |
2023-12-08 15:03:46 +0100 | <ncf> | akegalj: repeat 0 doesn't leak, so maybe it has to do with the inlining annotations? |
2023-12-08 15:04:18 +0100 | <danza> | is my analysis wrong ncf ? |
2023-12-08 15:04:21 +0100 | <akegalj> | ncf: yes, `findIndex (const False) $ repeat 0` dosn't leak |
2023-12-08 15:04:44 +0100 | <danza> | then i guess the answer is "yes" |
2023-12-08 15:04:44 +0100 | <akegalj> | this also doesn't leak `findIndex (==1) $ iterate id 0` |
2023-12-08 15:05:09 +0100 | <ncf> | fascinating |
2023-12-08 15:06:01 +0100 | jmdaemon | (~jmdaemon@user/jmdaemon) (Ping timeout: 276 seconds) |
2023-12-08 15:07:01 +0100 | misterfish | (~misterfis@87.215.131.102) |
2023-12-08 15:07:40 +0100 | p3n | (~p3n@217.198.124.246) (Quit: ZNC 1.8.2 - https://znc.in) |
2023-12-08 15:07:57 +0100 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
2023-12-08 15:09:42 +0100 | p3n | (~p3n@217.198.124.246) |
2023-12-08 15:13:40 +0100 | <akegalj> | ncf: I think I found problem. findIndex is defined as via findIndices findIndices p xs = [ i | (x,i) <- zip xs [0..], p x] . When I tried to implement findIndex as ` findIndices p xs = head [ i | (x,i) <- zip xs [0..], p x]` it leaked. When I made it strict in field then it was constant space ` findIndices p xs = head [ i | (!x,i) <- zip xs [0..], p x]` |
2023-12-08 15:14:06 +0100 | <akegalj> | So i guess we should maybe add findIndex' that forces evaluation |
2023-12-08 15:16:14 +0100 | <ncf> | that doesn't tell me why the unevaluated thunks survive after going through const False |
2023-12-08 15:17:41 +0100 | <akegalj> | ncf: no, sorry... ignore last message. It still leaks. I was testing something else |
2023-12-08 15:18:21 +0100 | igemnace | (~ian@user/igemnace) (Read error: Connection reset by peer) |
2023-12-08 15:19:20 +0100 | <ncf> | doesn't leak for me |
2023-12-08 15:19:29 +0100 | <akegalj> | ncf: which ghc? |
2023-12-08 15:20:01 +0100 | <akegalj> | ncf: ps, which version doesn't leak? Original findIndex right? |
2023-12-08 15:20:02 +0100 | <ncf> | 9.4.7 |
2023-12-08 15:20:10 +0100 | <ncf> | your strict one |
2023-12-08 15:20:25 +0100 | <ncf> | let f p xs = head [i | (!x, i) <- zip xs [0..], p x] in f (const False) (iterate id 0) |
2023-12-08 15:20:38 +0100 | pastly | (~pastly@gateway/tor-sasl/pastly) (Remote host closed the connection) |
2023-12-08 15:21:01 +0100 | waleee | (~waleee@h-176-10-144-38.NA.cust.bahnhof.se) |
2023-12-08 15:21:03 +0100 | pastly | (~pastly@gateway/tor-sasl/pastly) |
2023-12-08 15:21:47 +0100 | <akegalj> | ncf: yes I thought it didn't leak for me as well but last time i checked it did. I was switching versions so maybe I tested on different ghc. Let me check 9.4.7 and report back |
2023-12-08 15:22:36 +0100 | <ncf> | i'm testing in ghci btw. with -O the leak goes away |
2023-12-08 15:22:56 +0100 | <akegalj> | ncf: I was testing with ghc -=2 |
2023-12-08 15:23:02 +0100 | <akegalj> | ghc -O2 |
2023-12-08 15:23:27 +0100 | <akegalj> | ncf: you are right, in ghci it doesn't leak |
2023-12-08 15:23:40 +0100 | sm[i] | (~user@plaintextaccounting/sm) (ERC 5.4.1 (IRC client for GNU Emacs 29.0.50)) |
2023-12-08 15:23:51 +0100 | sm[i] | (~user@plaintextaccounting/sm) |
2023-12-08 15:28:29 +0100 | <sm[i]> | @where stack |
2023-12-08 15:28:30 +0100 | <lambdabot> | All-in-one haskell installer/reproducible build tool for all platforms: https://www.fpcomplete.com/haskell/get-started |
2023-12-08 15:29:23 +0100 | <sm[i]> | @where+ stack https://haskellstack.org all-in-one haskell installer/reproducible build tool, an alternative to cabal-install |
2023-12-08 15:29:23 +0100 | <lambdabot> | Good to know. |
2023-12-08 15:29:57 +0100 | edr | (~edr@user/edr) |
2023-12-08 15:30:03 +0100 | pretty_dumm_guy | (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) |
2023-12-08 15:31:34 +0100 | <sm[i]> | @where cabal |
2023-12-08 15:31:34 +0100 | <lambdabot> | Flexible haskell build tool for all platforms: http://www.haskell.org/cabal |
2023-12-08 15:32:07 +0100 | <sm[i]> | @where+ cabal https://cabal.readthedocs.io flexible haskell build tool |
2023-12-08 15:32:07 +0100 | <lambdabot> | Nice! |
2023-12-08 15:32:53 +0100 | <sm[i]> | (FP complete's getting started page is gone and https://www.haskell.org/cabal/ is rather cobwebby) |
2023-12-08 15:33:11 +0100 | <danza> | @where cabal |
2023-12-08 15:33:11 +0100 | <lambdabot> | https://cabal.readthedocs.io flexible haskell build tool |
2023-12-08 15:33:23 +0100 | <danza> | overwriting + |
2023-12-08 15:34:43 +0100 | <danza> | oh i see why |
2023-12-08 15:35:34 +0100 | igemnace | (~ian@user/igemnace) |
2023-12-08 15:35:58 +0100 | <sm[i]> | reminder, you can look these up at https://haskell-links.org/?q=cabal or https://haskell-links.org/cabal |
2023-12-08 15:36:10 +0100 | CiaoSen | (~Jura@2a05:5800:283:ec00:ca4b:d6ff:fec1:99da) (Ping timeout: 255 seconds) |
2023-12-08 15:36:41 +0100 | <danza> | oh nice |
2023-12-08 15:38:05 +0100 | lane | (~lane@pool-98-113-180-17.nycmny.fios.verizon.net) |
2023-12-08 15:38:39 +0100 | sm[i] | has these configured as browser shortcuts |
2023-12-08 15:40:05 +0100 | <danza> | it does not look like it can be added to custom engines. What do you mean by that? Keyboard shortcuts? |
2023-12-08 15:41:40 +0100 | <sm[i]> | browsers have builtin (firefox) or as an extension (safari) a feature were you can type CMD ARG into the address bar and CMD and ARG are converted to a url |
2023-12-08 15:42:06 +0100 | <sm[i]> | saves a lot of time |
2023-12-08 15:43:21 +0100 | <danza> | handy |
2023-12-08 15:45:25 +0100 | sm[i] | has "ha PKG" (hackage), "hal PKG" (haskell-links search), "halj PKG" (haskell-links jump), "ho func" (hoogle) etc. |
2023-12-08 15:48:32 +0100 | <danza> | is that saved in code? Could share the settings that way |
2023-12-08 15:50:02 +0100 | <sm[i]> | I can't easily export them from safari KeywordSearch extension but eg you configure them like ha = https://hackage.haskell.org/package/@@@ |
2023-12-08 15:50:15 +0100 | <sm[i]> | just take a working url and templatise it |
2023-12-08 15:50:43 +0100 | <danza> | guessed the syntax was easy. Just a shame it cannot be shared |
2023-12-08 15:50:57 +0100 | <sm[i]> | I see.. yes you're right |
2023-12-08 15:51:27 +0100 | <sm[i]> | I'll try harder |
2023-12-08 15:51:49 +0100 | <danza> | oh are you the extension author? |
2023-12-08 15:52:29 +0100 | <sm[i]> | no, but it must have a data file somewhere |
2023-12-08 15:53:01 +0100 | alp_ | (~alp@2001:861:e3d6:8f80:98df:4b4d:4787:7761) (Remote host closed the connection) |
2023-12-08 15:53:24 +0100 | Square | (~Square@user/square) (Ping timeout: 268 seconds) |
2023-12-08 15:55:51 +0100 | <danza> | huh i do not even find how to add that template to firefox, it just leads me to a web with add-ons. Awful |
2023-12-08 15:56:31 +0100 | akegalj | (~akegalj@78-1-90-118.adsl.net.t-com.hr) (Quit: leaving) |
2023-12-08 15:56:37 +0100 | <sm[i]> | ok here's my haskell ones: https://termbin.com/fow0 |
2023-12-08 15:57:00 +0100 | flebron | (~flebron@2600:1010:a000:e1ef:19e5:1a07:7fe4:8b87) |
2023-12-08 15:57:06 +0100 | <sm[i]> | in Firefox it's a "keyword" field inside the bookmark manager |
2023-12-08 15:58:00 +0100 | <danza> | cool, why don't you put them on a repo? |
2023-12-08 15:58:36 +0100 | <sm[i]> | readable version: https://termbin.com/lqxs |
2023-12-08 16:02:45 +0100 | <danza> | "hal" =D |
2023-12-08 16:04:04 +0100 | <sm[i]> | @where+ browser-keywords https://gist.github.com/simonmichael/6f95f7d72048649a9ba05c7b31e44968 time-saving Haskell-related url macros |
2023-12-08 16:04:04 +0100 | <lambdabot> | It is forever etched in my memory. |
2023-12-08 16:04:07 +0100 | <sm[i]> | for a start |
2023-12-08 16:04:45 +0100 | <danza> | great! \o/ |
2023-12-08 16:06:59 +0100 | <danza> | my bookmarks manager only shows a "keyword" field in each bookmark card, does not look like the stuff you are mentioning... |
2023-12-08 16:07:57 +0100 | akegalj | (~akegalj@89-164-101-220.dsl.iskon.hr) |
2023-12-08 16:09:05 +0100 | <akegalj> | ncf: `findIndex (\x -> x `seq` False) $ iterate id 0` works fine also |
2023-12-08 16:09:39 +0100 | <danza> | interesting |
2023-12-08 16:09:50 +0100 | flebron | (~flebron@2600:1010:a000:e1ef:19e5:1a07:7fe4:8b87) (Quit: Client closed) |
2023-12-08 16:10:25 +0100 | <sm[i]> | danza: if it's firefox, that's the one. The placeholder is probably something other than @@@ |
2023-12-08 16:11:07 +0100 | <danza> | oh so the format on github is for safari |
2023-12-08 16:11:33 +0100 | <danza> | yeah that was in the doc -facepalm- |
2023-12-08 16:12:51 +0100 | azimut | (~azimut@gateway/tor-sasl/azimut) |
2023-12-08 16:21:25 +0100 | Unicorn_Princess | (~Unicorn_P@user/Unicorn-Princess/x-3540542) |
2023-12-08 16:25:06 +0100 | <probie> | Are there any good constraint solver libraries in Haskell (either pure Haskell, or more likely wrapping something else)? |
2023-12-08 16:25:07 +0100 | waleee | (~waleee@h-176-10-144-38.NA.cust.bahnhof.se) (Ping timeout: 255 seconds) |
2023-12-08 16:26:01 +0100 | <kuribas> | what kind of constraints? |
2023-12-08 16:28:29 +0100 | nadja | (~dequbed@banana-new.kilobyte22.de) (Ping timeout: 240 seconds) |
2023-12-08 16:29:51 +0100 | pretty_dumm_guy | (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Quit: WeeChat 3.5) |
2023-12-08 16:30:48 +0100 | pretty_dumm_guy | (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) |
2023-12-08 16:32:04 +0100 | potato44 | (uid421314@id-421314.lymington.irccloud.com) (Quit: Connection closed for inactivity) |
2023-12-08 16:36:38 +0100 | nadja | (~dequbed@banana-new.kilobyte22.de) |
2023-12-08 16:40:24 +0100 | __monty__ | (~toonn@user/toonn) |
2023-12-08 16:41:22 +0100 | misterfish | (~misterfis@87.215.131.102) (Ping timeout: 260 seconds) |
2023-12-08 16:41:23 +0100 | <probie> | Just boolean propositions and integer inequalities, although with a very large number of constraints, ideally with a solver that can handle optimisation problems as well as just satisfaction problems |
2023-12-08 16:43:21 +0100 | <probie> | For context, I'm currently arguing with gecode (which is C++) and wishing I could do this in Haskell |
2023-12-08 16:44:28 +0100 | <danza> | i have seen `constraints` mentioned in haskell cafe https://hackage.haskell.org/package/constraints |
2023-12-08 16:44:59 +0100 | xff0x | (~xff0x@2405:6580:b080:900:9024:2952:42f7:bdd9) (Ping timeout: 260 seconds) |
2023-12-08 16:46:59 +0100 | xff0x | (~xff0x@ai096045.d.east.v6connect.net) |
2023-12-08 16:47:06 +0100 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:11bf:d345:9651:e652) (Remote host closed the connection) |
2023-12-08 16:47:21 +0100 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:11bf:d345:9651:e652) |
2023-12-08 16:51:25 +0100 | myxos | (~myxos@065-028-251-121.inf.spectrum.com) (Quit: myxos) |
2023-12-08 16:53:23 +0100 | <lortabac> | @hackage holmes -- probie |
2023-12-08 16:53:23 +0100 | <lambdabot> | https://hackage.haskell.org/package/holmes -- probie |
2023-12-08 16:54:16 +0100 | <danza> | neat |
2023-12-08 16:54:27 +0100 | <lortabac> | last time I tried it I wasn't able to use backtracking, IIRC the search didn't terminate |
2023-12-08 16:56:03 +0100 | <lortabac> | my advice would be to call a Prolog program via HTTP or pipes |
2023-12-08 16:57:04 +0100 | sabino | (~sabino@user/sabino) |
2023-12-08 16:57:22 +0100 | <lortabac> | or some specialized language like Minizinc or Conjure |
2023-12-08 16:57:44 +0100 | <exarkun> | in https://serokell.io/blog/introduction-to-free-monads what do the notations "(fancy S)(regular S)" and "(italic M),(regular M)" mean? |
2023-12-08 17:01:14 +0100 | tabemann | (~tabemann@172-13-49-137.lightspeed.milwwi.sbcglobal.net) (Remote host closed the connection) |
2023-12-08 17:03:32 +0100 | <probie> | Gecode is the default solver for minizinc. Perhaps writing some Haskell to generate flatzinc and then feeding that to gecode would work |
2023-12-08 17:04:27 +0100 | haskellbridge | (~haskellbr@069-135-003-034.biz.spectrum.com) (Remote host closed the connection) |
2023-12-08 17:04:49 +0100 | <sshine> | exarkun, I can't say. looks like almost a rendering error, I think. |
2023-12-08 17:05:48 +0100 | <sshine> | exarkun, yea, I think that's what it is. if you inspect the source code, you'll get one <math> tag and one <span class="katex-html"> tag. |
2023-12-08 17:06:39 +0100 | <sshine> | exarkun, so I think something went wrong hiding one of those two representations, assuming the first one worked. maybe you're a firefox user like me, and this is just a case of Firefox dying? |
2023-12-08 17:07:10 +0100 | haskellbridge | (~haskellbr@069-135-003-034.biz.spectrum.com) |
2023-12-08 17:07:10 +0100 | ChanServ | +v haskellbridge |
2023-12-08 17:07:43 +0100 | <sshine> | exarkun, it would really surprise me that they put such effort into introducing foundations, and then completely overlook that someone with basic math wouldn't know what this double notation means. :-D |
2023-12-08 17:08:22 +0100 | <sshine> | (as in, I also don't know what to make of it, except for the speculation that it's a rendering error.) |
2023-12-08 17:09:23 +0100 | <exarkun> | Oof, okay, fun stuff. I guess they did also say the theory part isn't necessary, I guess I'll stop trying to make sense of it and read the rest, and then maybe look for theory elsewhere. Thanks :) |
2023-12-08 17:10:53 +0100 | <danza> | "not necessary"? Certification? |
2023-12-08 17:14:06 +0100 | <exarkun> | what they actually say is "This part is a bit theory-heavy, so if it is not your cup of tea, feel free to skim over it." :) |
2023-12-08 17:15:03 +0100 | <danza> | just curious whether this is a certification path or just you got hired or changed project or something |
2023-12-08 17:16:37 +0100 | <exarkun> | just continuing my personal random walk through haskell-related ideas |
2023-12-08 17:16:55 +0100 | nilradical | (~nilradica@user/naso) |
2023-12-08 17:16:59 +0100 | nilradical | (~nilradica@user/naso) (Remote host closed the connection) |
2023-12-08 17:17:10 +0100 | <danza> | i see, enjoy |
2023-12-08 17:19:15 +0100 | <exarkun> | thanks :) |
2023-12-08 17:22:43 +0100 | stiell | (~stiell@gateway/tor-sasl/stiell) (Remote host closed the connection) |
2023-12-08 17:23:11 +0100 | stiell | (~stiell@gateway/tor-sasl/stiell) |
2023-12-08 17:24:14 +0100 | kuribas` | (~user@ip-188-118-57-242.reverse.destiny.be) |
2023-12-08 17:24:27 +0100 | kuribas | (~user@ip-188-118-57-242.reverse.destiny.be) (Read error: Connection reset by peer) |
2023-12-08 17:24:50 +0100 | euleritian | (~euleritia@dynamic-046-114-201-059.46.114.pool.telefonica.de) (Read error: Connection reset by peer) |
2023-12-08 17:25:09 +0100 | euleritian | (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) |
2023-12-08 17:25:42 +0100 | econo_ | (uid147250@id-147250.tinside.irccloud.com) |
2023-12-08 17:31:39 +0100 | ft | (~ft@p3e9bc784.dip0.t-ipconnect.de) |
2023-12-08 17:50:33 +0100 | euleritian | (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Read error: Connection reset by peer) |
2023-12-08 17:50:43 +0100 | euleritian | (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) |
2023-12-08 17:53:50 +0100 | akegalj | (~akegalj@89-164-101-220.dsl.iskon.hr) (Quit: leaving) |
2023-12-08 17:57:37 +0100 | kuribas` | (~user@ip-188-118-57-242.reverse.destiny.be) (Quit: ERC (IRC client for Emacs 27.1)) |
2023-12-08 17:58:09 +0100 | Guest23 | (~Guest37@2402:3a80:46d1:8496:33bd:67c1:c3d6:b116) |
2023-12-08 17:58:31 +0100 | azimut | (~azimut@gateway/tor-sasl/azimut) (Ping timeout: 240 seconds) |
2023-12-08 17:58:35 +0100 | Guest23 | (~Guest37@2402:3a80:46d1:8496:33bd:67c1:c3d6:b116) (Client Quit) |
2023-12-08 18:04:05 +0100 | danza | (~danza@151.47.82.6) (Ping timeout: 240 seconds) |
2023-12-08 18:05:34 +0100 | lortabac | (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) (Ping timeout: 255 seconds) |
2023-12-08 18:10:04 +0100 | euleritian | (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 255 seconds) |
2023-12-08 18:10:39 +0100 | euleritian | (~euleritia@dynamic-046-114-201-059.46.114.pool.telefonica.de) |
2023-12-08 18:11:52 +0100 | tabemann | (~tabemann@172-13-49-137.lightspeed.milwwi.sbcglobal.net) |
2023-12-08 18:15:29 +0100 | erty | (~user@user/aeroplane) |
2023-12-08 18:16:40 +0100 | danza | (~danza@151.47.94.187) |
2023-12-08 18:18:33 +0100 | euleritian | (~euleritia@dynamic-046-114-201-059.46.114.pool.telefonica.de) (Read error: Connection reset by peer) |
2023-12-08 18:18:50 +0100 | euleritian | (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) |
2023-12-08 18:20:17 +0100 | lortabac | (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) |
2023-12-08 18:21:27 +0100 | <erty> | Hello everyone, I was looking for a package for AI and found "neural" on hackage. Now, when I added it to extra-deps in stack.yaml list |
2023-12-08 18:22:07 +0100 | <erty> | and dependencies: in package.yaml it shows error [/myproj/neural: getDirectoryContents:openDirStream: does not exist (No such file or directory)] |
2023-12-08 18:22:46 +0100 | <erty> | how can I resolve it?Thanks! |
2023-12-08 18:22:57 +0100 | <haskellbridge> | 06<sm> check your syntax for each yaml file |
2023-12-08 18:23:17 +0100 | <haskellbridge> | 06<sm> (they are different) |
2023-12-08 18:25:01 +0100 | <erty> | haskellbridge: This is a new project which I generated using "stack new myproj" and simply added these dependency in a new line "- neural" |
2023-12-08 18:25:18 +0100 | <haskellbridge> | 06<sm> package.yaml dependencies syntax: https://github.com/sol/hpack#dependencies |
2023-12-08 18:27:20 +0100 | <haskellbridge> | 06<sm> show us your whole package.yaml file and whole output in a pastebin if you like |
2023-12-08 18:27:34 +0100 | waleee | (~waleee@h-176-10-144-38.NA.cust.bahnhof.se) |
2023-12-08 18:28:13 +0100 | <haskellbridge> | 06<sm> and stack.yaml file |
2023-12-08 18:29:18 +0100 | <haskellbridge> | 06<sm> here's the stack.yaml syntax: https://docs.haskellstack.org/en/stable/yaml_configuration/#extra-deps |
2023-12-08 18:29:21 +0100 | <erty> | haskellbridge: thanks, this package.yaml [https://paste.rs/0UMiS] and stack.yaml [https://paste.rs/Yv3vF] |
2023-12-08 18:30:35 +0100 | <haskellbridge> | 06<sm> you need to write the package version number in stack.yaml |
2023-12-08 18:32:13 +0100 | <haskellbridge> | 06<sm> (in extra-deps:) |
2023-12-08 18:34:10 +0100 | potato44 | (uid421314@id-421314.lymington.irccloud.com) |
2023-12-08 18:35:16 +0100 | lortabac | (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) (Ping timeout: 268 seconds) |
2023-12-08 18:37:20 +0100 | <erty> | haskellbridge: I did that and I think its working. Since the package I need to add hask multiple dependencies, do I need to add all those dependencies as well? https://paste.rs/tQTK2 |
2023-12-08 18:37:51 +0100 | <erty> | I need the package "neural" https://hackage.haskell.org/package/neural |
2023-12-08 18:38:40 +0100 | <glguy> | erty: stack.yaml is a list of *all* the things in one workspace you happen to be using. A resolver is a set of packages. Anything you want to use not in that set you have to add to your workspace via extra-deps |
2023-12-08 18:38:41 +0100 | chomwitt | (~chomwitt@2a02:587:7a09:c300:1ac0:4dff:fedb:a3f1) (Ping timeout: 245 seconds) |
2023-12-08 18:38:45 +0100 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:11bf:d345:9651:e652) (Remote host closed the connection) |
2023-12-08 18:39:27 +0100 | <glguy> | erty: package.yaml is an old way to make your project's .cabal file. That lists the direct dependencies of the package you're developing and specifies the range of versions you support |
2023-12-08 18:41:33 +0100 | <erty> | glguy: Is there a better way, since I dont want to add all those dependencies by myself. |
2023-12-08 18:42:12 +0100 | <glguy> | The stack model is that you specify exactly the versions of everything you're using in your current workspace |
2023-12-08 18:42:13 +0100 | <erty> | can I somehow bypass those extra steps |
2023-12-08 18:42:54 +0100 | <glguy> | you can copy/paste from the error message stack is giving you into your stack.yaml |
2023-12-08 18:44:12 +0100 | m1dnight | (~christoph@78-22-4-67.access.telenet.be) (Quit: WeeChat 4.1.0) |
2023-12-08 18:46:56 +0100 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:11bf:d345:9651:e652) |
2023-12-08 18:48:24 +0100 | <erty> | Well guess everything seems to be working, one last extra step need was to add "allow-newer: true" in /home/.stack/config.yaml |
2023-12-08 18:48:41 +0100 | m1dnight | (~christoph@78-22-4-67.access.telenet.be) |
2023-12-08 18:49:05 +0100 | <glguy> | erty: remember that you did that. It's going to break something down the road and be hard to find |
2023-12-08 18:50:17 +0100 | Sgeo | (~Sgeo@user/sgeo) |
2023-12-08 18:50:29 +0100 | <c_wraith> | can't you give allow-newer a package name instead of true? |
2023-12-08 18:50:32 +0100 | <haskellbridge> | 06<sm> erty: no real shortcut to listing all those things explicitly - except use cabal, which figures out the stack.yaml's resolver and extra-deps on its own (but les reliably) |
2023-12-08 18:51:00 +0100 | elevenkb | (elevenkb@2607:5300:203:b92b::185) |
2023-12-08 18:51:01 +0100 | <haskellbridge> | 06<sm> I don't think you got it to actually build neural, did you ? |
2023-12-08 18:51:03 +0100 | <glguy> | putting allow-newer in your ~/.stack means it'll affect all your workspaces, and allow-newer in general will just cause build failures |
2023-12-08 18:52:27 +0100 | <haskellbridge> | 06<sm> neural was released in 2017 and requires a version of GHC older than I can install on this machine |
2023-12-08 18:53:51 +0100 | <erty> | I am sorry, I am new to building stack and stuff. I needed to add "allow-newer: true" since one of the packages complained that it neede base to be something between 4.17 and 4.18 (dont know exact numbers) |
2023-12-08 18:54:55 +0100 | <erty> | and now its installing and install command has crossed over 3000 lines |
2023-12-08 18:55:56 +0100 | <haskellbridge> | 06<sm> no problem, yes it's complicated. Adding allow-newer: true allowed it to find a "compatible looking" build plan, so it's installing a hundred deps. But when it gets to the neural package it will fail, because that package requires a 2017-era GHC version and its bounds don't declare that |
2023-12-08 18:56:18 +0100 | <haskellbridge> | 06<sm> I'm a few steps ahead, since I figured you'd be asking about that |
2023-12-08 18:56:29 +0100 | Square | (~Square@user/square) |
2023-12-08 18:56:58 +0100 | tzh | (~tzh@c-71-193-181-0.hsd1.or.comcast.net) |
2023-12-08 18:57:08 +0100 | vpan | (~vpan@mail.elitnet.lt) (Quit: Leaving.) |
2023-12-08 18:57:21 +0100 | <haskellbridge> | 06<sm> it was last tested with ghc 8.0, so stack --resolver lts-9.21 build neural pipes-zlib typelits-witnesses might work better |
2023-12-08 18:57:57 +0100 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:11bf:d345:9651:e652) (Remote host closed the connection) |
2023-12-08 18:58:27 +0100 | <erty> | haskellbridge: I am sorry, I only want to try implementing AI in haskel. So I looked around and found this package. I don't know whats the best way to build a simple neural nework i Haskell |
2023-12-08 18:59:18 +0100 | <haskellbridge> | 06<sm> installing things from hackage isn't always easy - it's best to check their upload date first, and try to find one that's less than a year or two old |
2023-12-08 18:59:49 +0100 | <haskellbridge> | 06<sm> for older packages like this, it usually requires installing an old GHC version |
2023-12-08 19:01:18 +0100 | <haskellbridge> | 06<sm> you can sort hackage's search results by upload date |
2023-12-08 19:02:50 +0100 | pavonia | (~user@user/siracusa) (Quit: Bye!) |
2023-12-08 19:06:39 +0100 | <erty> | haskellbridge: Thanks for help, I think support for AI in haskell is not that good. As, If browse hackage, I can not find latest packages |
2023-12-08 19:06:44 +0100 | <erty> | https://hackage.haskell.org/packages/browse?terms=%28tag%3Aai%29 |
2023-12-08 19:07:38 +0100 | <[exa]> | erty: there are good NN packages around, haskell people are usually just reasonably reluctant to label these as AI |
2023-12-08 19:07:50 +0100 | <[exa]> | https://hackage.haskell.org/package/grenade etc |
2023-12-08 19:09:46 +0100 | <glguy> | I didn't find a build plan for grenade using any GHC back to 9.2 |
2023-12-08 19:09:53 +0100 | <erty> | [exa]: yes, but still, it was last updated on 2017-04-12 and probably need only ghc version to run |
2023-12-08 19:10:10 +0100 | myxos | (~myxos@065-028-251-121.inf.spectrum.com) |
2023-12-08 19:10:15 +0100 | <erty> | *old |
2023-12-08 19:11:31 +0100 | qqq | (~qqq@92.43.167.61) |
2023-12-08 19:13:40 +0100 | <erty> | Also its sad to see that none of the packages have more than 40 downloads |
2023-12-08 19:14:08 +0100 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:11bf:d345:9651:e652) |
2023-12-08 19:15:38 +0100 | sord937 | (~sord937@gateway/tor-sasl/sord937) (Quit: sord937) |
2023-12-08 19:21:33 +0100 | L29Ah | (~L29Ah@wikipedia/L29Ah) |
2023-12-08 19:22:30 +0100 | <haskellbridge> | 06<sm> erty: so, that stack command I showed above is an easy way to use older GHC versions. It's pretty common (though obviously not ideal) to do that when working with old packages. |
2023-12-08 19:28:31 +0100 | <haskellbridge> | 12<Celestial> How exactly do cross-platform / platform dependent packages work? I was using `vty` on my linux desktop which worked fine, and on windows under wsl I had to use `vty-crossplatform` but now back on linux its giving me `unknown package: vty-crossplatform`? |
2023-12-08 19:29:17 +0100 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2023-12-08 19:30:06 +0100 | <geekosaur> | how recently have you run `cabal update`? |
2023-12-08 19:30:16 +0100 | <haskellbridge> | 06<sm> glguy: I see what you mean about grenade.. I could try cloning the repo and building from there, but I have lost the will |
2023-12-08 19:30:58 +0100 | <haskellbridge> | 12<Celestial> geekosaur: thanks that was it ... my bad |
2023-12-08 19:31:00 +0100 | <haskellbridge> | 06<sm> erty might be right |
2023-12-08 19:31:10 +0100 | <haskellbridge> | 06<sm> silly cabal |
2023-12-08 19:31:46 +0100 | <geekosaur> | I puled it up in hackage and saw it was only about a month old |
2023-12-08 19:32:28 +0100 | <haskellbridge> | 12<Celestial> (I should probably run `cabal update` more frequently) |
2023-12-08 19:36:56 +0100 | Hooloovoo | (~Hooloovoo@hax0rbana.org) (Ping timeout: 256 seconds) |
2023-12-08 19:38:02 +0100 | Hooloovoo | (~Hooloovoo@hax0rbana.org) |
2023-12-08 19:38:51 +0100 | <geekosaur> | erty, apparently the download count is broken and hasn't been updated in a while |
2023-12-08 19:39:19 +0100 | <geekosaur> | come to think of it, that was mentioned on haskell-cafe but I'm not sure anyone told #haskell-infrastructure |
2023-12-08 19:41:48 +0100 | target_i | (~target_i@217.175.14.39) |
2023-12-08 19:41:58 +0100 | <erty> | haskellbridge: I ran your command and it still tells me to add "allow-newer: true" in my home dir. I think best thing to do is to go and read stack doc for now |
2023-12-08 19:44:28 +0100 | <erty> | For AI I think, one should only use python as its used industry wide |
2023-12-08 19:45:15 +0100 | <erty> | but I will still try to train a single neuron in Haskell |
2023-12-08 19:45:47 +0100 | mosul | (~mosul@user/mosul) |
2023-12-08 19:47:58 +0100 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
2023-12-08 19:52:09 +0100 | <haskellbridge> | 06<sm> 👍️ somewhere out there is a NN project for Haskell that builds |
2023-12-08 19:53:54 +0100 | danza | (~danza@151.47.94.187) (Ping timeout: 268 seconds) |
2023-12-08 19:55:29 +0100 | chiselfuse | (~chiselfus@user/chiselfuse) (Remote host closed the connection) |
2023-12-08 19:56:04 +0100 | <erty> | :-| |
2023-12-08 19:57:30 +0100 | <haskellbridge> | 06<sm> what about https://hackage.haskell.org/package/hnn |
2023-12-08 20:01:01 +0100 | chiselfuse | (~chiselfus@user/chiselfuse) |
2023-12-08 20:01:25 +0100 | <srk> | aargh, I have a patch for grenade |
2023-12-08 20:01:41 +0100 | euleritian | (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Read error: Connection reset by peer) |
2023-12-08 20:02:12 +0100 | <haskellbridge> | 06<sm> stack build hnn --resolver lts-18.28 mwc-random-0.14.0.0 random-1.1 maybe |
2023-12-08 20:02:29 +0100 | euleritian | (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) |
2023-12-08 20:03:09 +0100 | <glguy> | cabal repl -w ghc-9.6 --build-dep hnn # worked here |
2023-12-08 20:03:58 +0100 | <erty> | haskellbridge: hnn does have a nice tutorial https://hackage.haskell.org/package/hnn-0.3/docs/AI-HNN-FF-Network.html I'll look into that |
2023-12-08 20:08:05 +0100 | <haskellbridge> | 06<sm> glguy nice one. cabal repl hnn should be made to do the same (like stack) |
2023-12-08 20:08:53 +0100 | <haskellbridge> | 06<sm> Another satisfied customer! NEXT! |
2023-12-08 20:18:05 +0100 | misterfish | (~misterfis@84-53-85-146.bbserv.nl) |
2023-12-08 20:18:35 +0100 | Guest97 | (~Guest97@134.117.247.129) |
2023-12-08 20:18:53 +0100 | fendor | (~fendor@2a02:8388:1605:d100:267b:1353:13d7:4f0c) (Remote host closed the connection) |
2023-12-08 20:24:55 +0100 | FinnElija | (~finn_elij@user/finn-elija/x-0085643) (Ping timeout: 240 seconds) |
2023-12-08 20:25:24 +0100 | FinnElija | (~finn_elij@user/finn-elija/x-0085643) |
2023-12-08 20:25:50 +0100 | chomwitt | (~chomwitt@2a02:587:7a09:c300:1ac0:4dff:fedb:a3f1) |
2023-12-08 20:30:21 +0100 | <srk> | glguy: this works https://github.com/HuwCampbell/grenade/pull/107 |
2023-12-08 20:30:50 +0100 | <srk> | sm[i]: ^ |
2023-12-08 20:31:25 +0100 | <haskellbridge> | 06<sm> 👍️ |
2023-12-08 20:31:59 +0100 | <srk> | I've had a port to singletons-base that I forgot to PR and someone beat me to it hah |
2023-12-08 20:32:04 +0100 | chele | (~chele@user/chele) (Remote host closed the connection) |
2023-12-08 20:33:09 +0100 | <srk> | seems like the bridge has trouble with emoji :D |
2023-12-08 20:34:09 +0100 | <glguy> | srk: https://ibb.co/BV0f5yf that's what I saw |
2023-12-08 20:34:11 +0100 | L29Ah | (~L29Ah@wikipedia/L29Ah) (Ping timeout: 264 seconds) |
2023-12-08 20:34:40 +0100 | <telser_> | I've been meaning to ask about this.. With PatternSynonyms, when you create a record pattern, it would seem that you can't export it using the usual record syntax like MyRecord(..). Anyone know if there is a hard reason for that? |
2023-12-08 20:35:02 +0100 | <srk> | glguy: hmm, interesting. I've recently fixed some of them in urxvt by adding xft:Symbola because Noto emoji didn't handle many but this one is borken |
2023-12-08 20:35:15 +0100 | <geekosaur> | I think patterns require `ExplicitNamespaces` and `pattern …` |
2023-12-08 20:35:46 +0100 | <telser_> | They do, but as far as I can tell you still don't get the ability to export all the fields in it. |
2023-12-08 20:35:57 +0100 | <telser_> | Without manually listing them |
2023-12-08 20:36:27 +0100 | <geekosaur> | hm. I'd report that |
2023-12-08 20:37:00 +0100 | <srk> | 👍 seems to work |
2023-12-08 20:38:03 +0100 | <telser_> | geekosaur: Okay, I'll get together a small example and open an issue, thanks! |
2023-12-08 20:39:48 +0100 | <glguy> | srk: you fixed it? |
2023-12-08 20:40:15 +0100 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2023-12-08 20:40:35 +0100 | <srk> | no, when I copy it from web and paste to term it just works, but not the one via bridge |
2023-12-08 20:40:46 +0100 | <glguy> | srk: the UTF-8 representation for the two is identital |
2023-12-08 20:40:54 +0100 | <glguy> | The bridge message was "\x0306<s\xe2\x80\x8bm> \x0f\xf0\x9f\x91\x8d\xef\xb8\x8f somewhere out there is a NN project for Haskell that builds" |
2023-12-08 20:41:09 +0100 | <glguy> | yours was "\xf0\x9f\x91\x8d seems to work" |
2023-12-08 20:41:27 +0100 | <srk> | interesting, was wondering how someone debugs such a thing :) |
2023-12-08 20:41:34 +0100 | <glguy> | it's possible your client didn't like the formatting reset code just before the emoji |
2023-12-08 20:42:09 +0100 | <srk> | so it's probably irssi bug? |
2023-12-08 20:42:25 +0100 | <g> | replay for test case 06<sm> 👍️ somewhere out there is a NN project for Haskell that builds |
2023-12-08 20:42:54 +0100 | <srk> | fail. |
2023-12-08 20:43:06 +0100 | srk | should try glirc |
2023-12-08 20:43:14 +0100 | <g> | replay for test case 👍 seems to work |
2023-12-08 20:43:35 +0100 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
2023-12-08 20:43:39 +0100 | <g> | just the leading formatting thing 👍 breaks it? |
2023-12-08 20:43:48 +0100 | <glguy> | did that last message break it? |
2023-12-08 20:44:07 +0100 | <srk> | nope, only the orig. one from sm breaks |
2023-12-08 20:44:38 +0100 | <geekosaur> | thta makes me wonder if it's the invisible code inserted into the relayed nick that is breaking it |
2023-12-08 20:44:53 +0100 | <geekosaur> | (I have relaying configured with "NOPINGNICK") |
2023-12-08 20:46:44 +0100 | lane1 | (~lane@pool-98-113-180-17.nycmny.fios.verizon.net) |
2023-12-08 20:47:26 +0100 | <haskellbridge> | 14<geekosaur> does this break? 👍 |
2023-12-08 20:47:44 +0100 | <glguy> | srk: I'm debugging this with my second client called "snowcone" that's more of an automation platform than a normal console. In that one I can click on arbitrary messages to see exactly how they were composed and can then run the commands to replay those string literals for testing |
2023-12-08 20:48:13 +0100 | <srk> | cool! last one from geekosaur is fine |
2023-12-08 20:48:54 +0100 | <haskellbridge> | 06<sm> glguy are you wearing Matrix shades ? you must be wearing Matrix shades |
2023-12-08 20:49:03 +0100 | <geekosaur> | okay, so it doesn't like the no-ping character. unfortunately I Nsuspect those of us on both sides of the bridge won't like being pinged all the time |
2023-12-08 20:49:22 +0100 | lane | (~lane@pool-98-113-180-17.nycmny.fios.verizon.net) (Ping timeout: 255 seconds) |
2023-12-08 20:49:36 +0100 | <glguy> | I bet when it sees that character it thinks that thing is latin1 or cp1251 or something and not utf-8 |
2023-12-08 20:49:59 +0100 | <srk> | https://ibb.co/nzG2gxt |
2023-12-08 20:50:51 +0100 | haskellbridge | 06<sm> refrains from spamming a matrix shades image just in time |
2023-12-08 20:54:01 +0100 | <monochrom> | telser_: For now, I have found a work around: "pattern Y{b,n} = ..." can be exported as "(pattern Y, b, n)". To be sure, this is unsatisfactory, I want my "pattern Y(...)"! |
2023-12-08 20:54:48 +0100 | gdown | (~gavin@h69-11-149-109.kndrid.broadband.dynamic.tds.net) |
2023-12-08 20:54:53 +0100 | <monochrom> | Or even just "pattern Y" should already export the whole thing because like what's the point |
2023-12-08 20:55:30 +0100 | <telser_> | monochrom: Right, you can explictly list them all out, but when you have a big record.. I won't be able to convince people to use it. |
2023-12-08 20:55:45 +0100 | <telser_> | s/it/PatternSynonyms/ |
2023-12-08 21:01:25 +0100 | trev | (~trev@user/trev) (Quit: trev) |
2023-12-08 21:06:55 +0100 | Guest97 | (~Guest97@134.117.247.129) (Quit: Client closed) |
2023-12-08 21:09:16 +0100 | cheater_ | (~Username@user/cheater) |
2023-12-08 21:10:09 +0100 | <EvanR> | big records are all the rage in web world |
2023-12-08 21:10:29 +0100 | cheater | (~Username@user/cheater) (Ping timeout: 240 seconds) |
2023-12-08 21:10:32 +0100 | <EvanR> | haskell has some features to make them wieldy |
2023-12-08 21:10:33 +0100 | cheater_ | cheater |
2023-12-08 21:11:01 +0100 | <haskellbridge> | 06<sm> DUAL WIELD |
2023-12-08 21:17:02 +0100 | ec | (~ec@gateway/tor-sasl/ec) (Remote host closed the connection) |
2023-12-08 21:17:21 +0100 | ec | (~ec@gateway/tor-sasl/ec) |
2023-12-08 21:17:48 +0100 | <EvanR> | big record as main weapon, unboxed int in offhand |
2023-12-08 21:20:29 +0100 | <ski> | "the invisible code inserted into the relayed nick" -- imho, the bridge ought not to insert that, at least not if there's no user with that nick joined to the channel that the bridge is relaying into |
2023-12-08 21:20:57 +0100 | <geekosaur> | sadly it doesn't have that option, it's all or nothing |
2023-12-08 21:21:27 +0100 | <ski> | (i can understand not wanting to be pinged by yourself all the time, if you're on both sides, with the same nick) |
2023-12-08 21:22:33 +0100 | <ski> | (for me, the inserted character looks like a dotted box, overlayed over the previous glyph (first character of the nickname)) |
2023-12-08 21:22:33 +0100 | <geekosaur> | discord bridges do the same thing, again all or nothing |
2023-12-08 21:27:00 +0100 | <slideshow6052> | hi |
2023-12-08 21:27:55 +0100 | <slideshow6052> | i am struggling with monad i want to use state to keep track of an int |
2023-12-08 21:28:05 +0100 | <slideshow6052> | https://www.irccloud.com/pastebin/8ne3txlx/ |
2023-12-08 21:28:19 +0100 | <slideshow6052> | but i can't use this modify inside the inner do, how do i get that to work? |
2023-12-08 21:28:43 +0100 | <ski> | exarkun : "in https://serokell.io/blog/introduction-to-free-monads what do the notations "(fancy S)(regular S)" and "(italic M),(regular M)" mean?" -- looks to me that there's some fancy (TeX ? MathML ?) rendering, and a fallback to simpler symbols, and for some reason both are being shown |
2023-12-08 21:30:02 +0100 | <EvanR> | slideshow6052, where you have let (cs', gs') =, but you want the right side to be more State action code, use (cs', gs') <-... instead |
2023-12-08 21:30:11 +0100 | <ski> | slideshow6052 : instead of .. what EvanR just said :p |
2023-12-08 21:30:35 +0100 | <ski> | you also need to wrap the first two branches in `pure'/`return' |
2023-12-08 21:30:36 +0100 | <EvanR> | on line 13 where you have just x, that would need to be return x |
2023-12-08 21:30:57 +0100 | <EvanR> | same on 7 and 8 |
2023-12-08 21:31:20 +0100 | <ski> | slideshow6052 : also, `(Goal ctx expr ty)' can be just `Goal ctx expr ty', and `(Lam x m)' can be just `Lam x m' |
2023-12-08 21:32:28 +0100 | <slideshow6052> | ah i see |
2023-12-08 21:32:36 +0100 | <slideshow6052> | thank you both, it works now :) |
2023-12-08 21:32:38 +0100 | <ski> | slideshow6052 : also, your gs' is always the empty list, so far |
2023-12-08 21:33:04 +0100 | <slideshow6052> | yes atm i am slowly figuring it all out haha |
2023-12-08 21:33:04 +0100 | <int-e> | ski: it looks like there's supposed to be something that hides one of those alternatives (one is in a <semantics> element and the other is in an <annotation> element, MathML stuff) |
2023-12-08 21:33:22 +0100 | <ski> | int-e : right |
2023-12-08 21:34:01 +0100 | akegalj | (~akegalj@89-164-101-220.dsl.iskon.hr) |
2023-12-08 21:34:23 +0100 | <slideshow6052> | also is there some cool way to do modify(+1) and n <- get in one line? |
2023-12-08 21:35:02 +0100 | <tomsmeding> | ski: exarkun: looks like they're using katex but forgot to add the katex.css stylesheet |
2023-12-08 21:35:21 +0100 | <Rembane> | slideshow6052: get << modify (+1) |
2023-12-08 21:35:32 +0100 | <tomsmeding> | that's also why the "fancy S" isn't all that fancy |
2023-12-08 21:35:34 +0100 | <monochrom> | slideshow6052: The library doesn't have it. But yeah it is a much overlooked nicety. |
2023-12-08 21:35:36 +0100 | L29Ah | (~L29Ah@wikipedia/L29Ah) |
2023-12-08 21:36:33 +0100 | lortabac | (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) |
2023-12-08 21:37:06 +0100 | <slideshow6052> | do i need to import << or something? it doesn't work for me |
2023-12-08 21:37:12 +0100 | <akegalj> | Hm. Program `main = print $ filter (const False) [0..]` leaks when compiled with -O2 . Doesn't leak when compiled with -O0 (tested on ghc-9.4.8 and ghc-9.8.1) . Should this be considered a bug? |
2023-12-08 21:37:15 +0100 | <Rembane> | slideshow6052: Yeah, it's in Control.Monad I think |
2023-12-08 21:37:25 +0100 | <ski> | slideshow6052,monochrom : i guess one could imagine `preModify,postModify :: State s m => (s -> s) -> m s', or somesuch |
2023-12-08 21:37:31 +0100 | euleritian | (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 255 seconds) |
2023-12-08 21:37:49 +0100 | <slideshow6052> | oh hi monochrom |
2023-12-08 21:38:17 +0100 | <ski> | there is `state :: State s m => (s -> (a,s)) -> s a', but it's not as nice to type `n <- state (join (,) . (1 +))' i guess |
2023-12-08 21:38:24 +0100 | <slideshow6052> | i remember i was on here about a year ago (different account i lost that one) and you helped me out |
2023-12-08 21:38:28 +0100 | <slideshow6052> | :) |
2023-12-08 21:38:37 +0100 | euleritian | (~euleritia@dynamic-046-114-201-059.46.114.pool.telefonica.de) |
2023-12-08 21:38:56 +0100 | <slideshow6052> | ah i see. it's okay ill stik to what i had. was asking just in case because you never know with haskell, sometimes it has cool stuff like that |
2023-12-08 21:38:58 +0100 | <EvanR> | state (\i -> (i, i + 1)) |
2023-12-08 21:39:13 +0100 | <EvanR> | I might have that backwards |
2023-12-08 21:39:24 +0100 | <ski> | no, it's right |
2023-12-08 21:40:04 +0100 | <ski> | (that's the postincrement. the `join (,)' was preincrement) |
2023-12-08 21:40:10 +0100 | <EvanR> | doing get then modify on another line wins the one-thing-per-line award popular in oop |
2023-12-08 21:40:31 +0100 | <slideshow6052> | yep i think ill stick to that |
2023-12-08 21:40:42 +0100 | <ski> | .. i gusess `n <- state (id &&& (1 +))' or `n <- state (graph (1 +))' is preincrement |
2023-12-08 21:40:55 +0100 | <EvanR> | :t graph |
2023-12-08 21:40:56 +0100 | <lambdabot> | error: Variable not in scope: graph |
2023-12-08 21:41:49 +0100 | <ski> | @let graph :: Arrow ar => ar a b -> ar a (a,b); graph = (arr id &&&); cograph :: ArrowChoice ar => ar a b -> ar (Either a b) b; cograph = (||| arr id) |
2023-12-08 21:41:50 +0100 | <lambdabot> | Defined. |
2023-12-08 21:41:58 +0100 | <ski> | EvanR ^ |
2023-12-08 21:41:58 +0100 | szkl | (uid110435@id-110435.uxbridge.irccloud.com) (Quit: Connection closed for inactivity) |
2023-12-08 21:43:46 +0100 | <ski> | the `ar a (a,b)' is a subobject of `(a,b)' expressing the graph of the morphism `ar a b' as a relation. the `ar (Either a b) b' is a quotient object of `Either a b' (essentially a table of inputs-outputs, putting inputs that map to the same output in the same equivalence class as the output), "expressing the cograph of the morphism" |
2023-12-08 21:45:03 +0100 | <ski> | (i'd use `Category' instead of `Arrow' (to avoid the `arr'), except i also need access to subclasses for categorical product and categorical coproduct) |
2023-12-08 21:45:05 +0100 | misterfish | (~misterfis@84-53-85-146.bbserv.nl) (Ping timeout: 256 seconds) |
2023-12-08 21:45:34 +0100 | <EvanR> | *so you want to increment your variable, let me first introduce you to some category theory xD* |
2023-12-08 21:45:57 +0100 | <slideshow6052> | haha this is how i feel every time i come on here xd |
2023-12-08 21:46:03 +0100 | <ski> | makes perfect sense, right ? |
2023-12-08 21:48:34 +0100 | <ski> | bwe : hm, not sure what you mean by "how can I inspect `author` and depend a control flow on it?" |
2023-12-08 21:49:38 +0100 | <ski> | slideshow6052 : anyway, something like `preModify' and `postModify' would be neat to use here. in the absence of that, just go for `get' and `modify', or else `get' and `put' |
2023-12-08 21:50:41 +0100 | target_i | (~target_i@217.175.14.39) (Quit: leaving) |
2023-12-08 21:52:40 +0100 | lortabac | (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) (Quit: WeeChat 4.1.1) |
2023-12-08 21:57:44 +0100 | peterbecich | (~Thunderbi@047-229-123-186.res.spectrum.com) |
2023-12-08 22:00:34 +0100 | ec | (~ec@gateway/tor-sasl/ec) (Remote host closed the connection) |
2023-12-08 22:00:59 +0100 | ec | (~ec@gateway/tor-sasl/ec) |
2023-12-08 22:01:19 +0100 | akegalj | (~akegalj@89-164-101-220.dsl.iskon.hr) (Quit: leaving) |
2023-12-08 22:01:58 +0100 | peterbecich | (~Thunderbi@047-229-123-186.res.spectrum.com) (Ping timeout: 256 seconds) |
2023-12-08 22:07:56 +0100 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2023-12-08 22:11:34 +0100 | euleritian | (~euleritia@dynamic-046-114-201-059.46.114.pool.telefonica.de) (Read error: Connection reset by peer) |
2023-12-08 22:11:53 +0100 | euleritian | (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) |
2023-12-08 22:15:09 +0100 | lg188 | (~lg188@82.18.98.230) (Quit: Ping timeout (120 seconds)) |
2023-12-08 22:15:31 +0100 | lg188 | (~lg188@82.18.98.230) |
2023-12-08 22:19:09 +0100 | alexherbo2 | (~alexherbo@2a02-8440-b214-7d9d-8410-795e-9151-6da8.rev.sfr.net) |
2023-12-08 22:21:10 +0100 | jargon | (~jargon@32.sub-174-238-226.myvzw.com) |
2023-12-08 22:21:30 +0100 | benjaminl | (~benjaminl@user/benjaminl) (Remote host closed the connection) |
2023-12-08 22:22:16 +0100 | benjaminl | (~benjaminl@user/benjaminl) |
2023-12-08 22:22:16 +0100 | benjaminl | (~benjaminl@user/benjaminl) (Remote host closed the connection) |
2023-12-08 22:23:27 +0100 | benjaminl | (~benjaminl@user/benjaminl) |
2023-12-08 22:24:34 +0100 | coot | (~coot@89-69-206-216.dynamic.chello.pl) (Quit: coot) |
2023-12-08 22:27:00 +0100 | petrichor | (~znc-user@user/petrichor) |
2023-12-08 22:29:46 +0100 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
2023-12-08 22:33:31 +0100 | Guest27 | (~Guest29@86-82-248-239.fixed.kpn.net) |
2023-12-08 22:34:19 +0100 | coot | (~coot@89-69-206-216.dynamic.chello.pl) |
2023-12-08 22:35:38 +0100 | Guest27 | (~Guest29@86-82-248-239.fixed.kpn.net) (Client Quit) |
2023-12-08 22:40:28 +0100 | _ht | (~Thunderbi@28-52-174-82.ftth.glasoperator.nl) (Remote host closed the connection) |
2023-12-08 22:41:58 +0100 | peterbecich | (~Thunderbi@047-229-123-186.res.spectrum.com) |
2023-12-08 22:53:29 +0100 | mosul | (~mosul@user/mosul) (Quit: Lost terminal) |
2023-12-08 22:56:37 +0100 | peterbecich | (~Thunderbi@047-229-123-186.res.spectrum.com) (Ping timeout: 255 seconds) |
2023-12-08 22:56:55 +0100 | YoungFrog | (~youngfrog@2a02:a03f:ca07:f900:1f5c:a3c6:297:feeb) (Ping timeout: 256 seconds) |
2023-12-08 22:59:21 +0100 | YoungFrog | (~youngfrog@39.129-180-91.adsl-dyn.isp.belgacom.be) |
2023-12-08 23:00:45 +0100 | <petrichor> | hi folks o/ |
2023-12-08 23:01:07 +0100 | <[exa]> | o/ |
2023-12-08 23:01:11 +0100 | <Rembane> | \œ |
2023-12-08 23:01:33 +0100 | cimento | (CO2@gateway/vpn/protonvpn/cimento) |
2023-12-08 23:01:54 +0100 | <ski> | ehlo petrichor |
2023-12-08 23:04:55 +0100 | <petrichor> | thought it was about time joined here as i'm doing advent of code in haskell ^^ |
2023-12-08 23:05:42 +0100 | <EvanR> | get the leaderboard code in the topic (if there's room) |
2023-12-08 23:06:28 +0100 | <petrichor> | EvanR: cool, thanks |
2023-12-08 23:06:43 +0100 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:11bf:d345:9651:e652) (Remote host closed the connection) |
2023-12-08 23:11:49 +0100 | <petrichor> | i am not going to be high up that leaderboard >_< |
2023-12-08 23:13:33 +0100 | <EvanR> | technically you can still catch up |
2023-12-08 23:13:55 +0100 | <EvanR> | I am regularly pushed down by people finishing after me xD |
2023-12-08 23:14:46 +0100 | <glguy> | petrichor: There's a wide range of people on the leaderboard. It's more about doing it in Haskell than doing it fast |
2023-12-08 23:15:31 +0100 | igemnace | (~ian@user/igemnace) (Read error: Connection reset by peer) |
2023-12-08 23:15:56 +0100 | igemnace | (~ian@user/igemnace) |
2023-12-08 23:18:46 +0100 | <petrichor> | <3 |
2023-12-08 23:18:55 +0100 | takuan | (~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection) |
2023-12-08 23:20:15 +0100 | <petrichor> | sounds good to me, i've only managed to complete it on christmas day and that wasn't in haskell |
2023-12-08 23:20:41 +0100 | <petrichor> | *on christmas day *once* |
2023-12-08 23:26:59 +0100 | Unicorn_Princess | (~Unicorn_P@user/Unicorn-Princess/x-3540542) (Ping timeout: 264 seconds) |
2023-12-08 23:29:18 +0100 | <EvanR> | I could only complete it once, and it was mid january by that point |
2023-12-08 23:29:26 +0100 | Unicorn_Princess | (~Unicorn_P@user/Unicorn-Princess/x-3540542) |
2023-12-08 23:29:45 +0100 | <EvanR> | the last five days of that aoc were brain melting |
2023-12-08 23:30:09 +0100 | <EvanR> | I'm not sure how I could've done it without haskell xD |
2023-12-08 23:30:39 +0100 | zetef | (~quassel@2a02:2f00:530a:a300:54fc:7521:3870:34b2) |
2023-12-08 23:41:23 +0100 | chomwitt | (~chomwitt@2a02:587:7a09:c300:1ac0:4dff:fedb:a3f1) (Remote host closed the connection) |
2023-12-08 23:43:01 +0100 | <int-e> | . o O ( You can write Haskell in any language, it's just more code and you need to do your own type checking. ) |
2023-12-08 23:44:26 +0100 | zetef | (~quassel@2a02:2f00:530a:a300:54fc:7521:3870:34b2) (Remote host closed the connection) |
2023-12-08 23:46:39 +0100 | eggplantade | (~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net) |
2023-12-08 23:49:08 +0100 | eggplantade | (~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
2023-12-08 23:49:22 +0100 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:11bf:d345:9651:e652) |
2023-12-08 23:52:02 +0100 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2023-12-08 23:54:16 +0100 | __monty__ | (~toonn@user/toonn) (Quit: leaving) |
2023-12-08 23:58:24 +0100 | jle` | (~jle`@2603-8001-3b02-84d4-cc77-9348-89d2-92f3.res6.spectrum.com) (Ping timeout: 268 seconds) |