Logs: liberachat/#haskell
| 2025-12-02 08:20:35 | × | Googulator32 quits (~Googulato@2a01-036d-0106-4ad8-d9ec-010d-f188-ffcb.pool6.digikabel.hu) (Quit: Client closed) |
| 2025-12-02 08:20:42 | → | Googulator22 joins (~Googulato@2a01-036d-0106-4ad8-d9ec-010d-f188-ffcb.pool6.digikabel.hu) |
| 2025-12-02 08:23:52 | → | YouDontKnowMe joins (~YouDontKn@2a06:3040:11:610::d101) |
| 2025-12-02 08:26:12 | × | YouDontKnowMe quits (~YouDontKn@2a06:3040:11:610::d101) (Client Quit) |
| 2025-12-02 08:26:38 | × | karenw quits (~karenw@user/karenw) (Ping timeout: 260 seconds) |
| 2025-12-02 08:34:40 | <lucabtz> | there is no string splitting in base? |
| 2025-12-02 08:39:34 | × | DetourNetworkUK quits (~DetourNet@user/DetourNetworkUK) (Ping timeout: 246 seconds) |
| 2025-12-02 08:41:06 | × | trickard quits (~trickard@cpe-85-98-47-163.wireline.com.au) (Read error: Connection reset by peer) |
| 2025-12-02 08:41:19 | → | trickard_ joins (~trickard@cpe-85-98-47-163.wireline.com.au) |
| 2025-12-02 08:41:56 | <Rembane> | lucabtz: There's span and break and partition and take and drop and takeWhile and dropWhile |
| 2025-12-02 08:43:45 | × | emmanuelux quits (~emmanuelu@user/emmanuelux) (Remote host closed the connection) |
| 2025-12-02 08:44:22 | × | peterbecich quits (~Thunderbi@172.222.148.214) (Ping timeout: 256 seconds) |
| 2025-12-02 08:50:10 | <dminuoso> | 21:18:59 tomsmeding │ it seems the theme of today is "words mean different things to different people" |
| 2025-12-02 08:50:42 | → | Googulator31 joins (~Googulato@2a01-036d-0106-4ad8-d9ec-010d-f188-ffcb.pool6.digikabel.hu) |
| 2025-12-02 08:50:43 | × | Googulator22 quits (~Googulato@2a01-036d-0106-4ad8-d9ec-010d-f188-ffcb.pool6.digikabel.hu) (Quit: Client closed) |
| 2025-12-02 08:50:47 | <dminuoso> | Human language is messy, imprecise and under constant change. |
| 2025-12-02 08:51:56 | <dminuoso> | Heck, if you just go through pure math publications, you see so many conflicting notation styles or conflicting terminology choices... its best to not dwell on what people call things and just be able to adjust your reference frame in a discussion... |
| 2025-12-02 08:52:20 | <dminuoso> | Especially when its people from different fields/languages/paradigms... |
| 2025-12-02 08:55:39 | → | merijn joins (~merijn@77.242.116.146) |
| 2025-12-02 09:02:54 | <lucabtz> | Rembane yeah i made one with takeWhile and dropWhile |
| 2025-12-02 09:03:54 | → | fp1 joins (~Thunderbi@2001:708:20:1406::1370) |
| 2025-12-02 09:04:46 | × | merijn quits (~merijn@77.242.116.146) (Ping timeout: 256 seconds) |
| 2025-12-02 09:04:59 | × | Inline quits (~inlinE@2001-4dd3-7fc8-0-2be-fec0-ba58-7d11.ipv6dyn.netcologne.de) (Remote host closed the connection) |
| 2025-12-02 09:05:18 | → | Inline joins (~inlinE@2001-4dd3-7fc8-0-2be-fec0-ba58-7d11.ipv6dyn.netcologne.de) |
| 2025-12-02 09:05:31 | × | Sgeo quits (~Sgeo@user/sgeo) (Read error: Connection reset by peer) |
| 2025-12-02 09:09:30 | × | tzh quits (~tzh@c-76-115-131-146.hsd1.or.comcast.net) (Quit: zzz) |
| 2025-12-02 09:10:02 | × | dhs quits (~dhs@user/dhscholb) () |
| 2025-12-02 09:10:37 | <chromoblob> | dminuoso: mind sharing which IRC client you use? interesting |
| 2025-12-02 09:14:45 | → | merijn joins (~merijn@77.242.116.146) |
| 2025-12-02 09:17:25 | × | trickard_ quits (~trickard@cpe-85-98-47-163.wireline.com.au) (Read error: Connection reset by peer) |
| 2025-12-02 09:17:39 | → | trickard_ joins (~trickard@cpe-85-98-47-163.wireline.com.au) |
| 2025-12-02 09:20:43 | × | Googulator31 quits (~Googulato@2a01-036d-0106-4ad8-d9ec-010d-f188-ffcb.pool6.digikabel.hu) (Quit: Client closed) |
| 2025-12-02 09:20:45 | → | Googulator22 joins (~Googulato@2a01-036d-0106-4ad8-d9ec-010d-f188-ffcb.pool6.digikabel.hu) |
| 2025-12-02 09:21:23 | → | Lycurgus joins (~juan@user/Lycurgus) |
| 2025-12-02 09:23:39 | → | kuribas joins (~user@2a02:1808:d1:d243:9821:bd8c:f208:7dc) |
| 2025-12-02 09:24:49 | <kuribas> | Funny how haskell makes easy things harder sometimes. I have a list of items, and I need to produce another list, but flatten it (so like a list monad). But I also want to have some state variable. |
| 2025-12-02 09:25:23 | <Lycurgus> | wrong lang 4 state |
| 2025-12-02 09:25:37 | <Lycurgus> | easy state anywho |
| 2025-12-02 09:25:39 | <merijn> | kuribas: That just sounds like scanl + flatten? |
| 2025-12-02 09:25:52 | <kuribas> | So I could: 1) use traverse on the list, using an inner state monad, then flatten. 2) make a list and state monad. 3) do an explicit tail recursive loop. |
| 2025-12-02 09:25:55 | → | chele joins (~chele@user/chele) |
| 2025-12-02 09:26:08 | <kuribas> | :t scanl |
| 2025-12-02 09:26:09 | <Lycurgus> | state u dont even think about hardly |
| 2025-12-02 09:26:10 | <lambdabot> | (b -> a -> b) -> b -> [a] -> [b] |
| 2025-12-02 09:26:54 | <kuribas> | Concretely, I want to generate some SQL query, but I need to generate aliases for tables, like alias1, alias2 (the state). |
| 2025-12-02 09:27:17 | <Axman6> | or mapAccumL/R |
| 2025-12-02 09:27:46 | <kuribas> | Funny, one of my colleages went to university in Glasgow, she never did haskell because it was to complicated... |
| 2025-12-02 09:27:53 | <kuribas> | But she is doing clojure now. |
| 2025-12-02 09:29:10 | → | DetourNetworkUK joins (DetourNetw@user/DetourNetworkUK) |
| 2025-12-02 09:32:02 | <sprout> | I just wrote a foldl_with_state in Egel |
| 2025-12-02 09:32:09 | <sprout> | not everything has to be a monad |
| 2025-12-02 09:32:20 | <Axman6> | that definitely sounds like mapAccumL to me ... |
| 2025-12-02 09:32:23 | <Axman6> | :t mapAccumL |
| 2025-12-02 09:32:25 | <lambdabot> | Traversable t => (s -> a -> (s, b)) -> s -> t a -> (s, t b) |
| 2025-12-02 09:32:34 | × | kuribas quits (~user@2a02:1808:d1:d243:9821:bd8c:f208:7dc) (Ping timeout: 260 seconds) |
| 2025-12-02 09:33:11 | <Lycurgus> | hs is a wonderment in that it managed to become quite practically while going full on ivory tower dont give a damn if u think it's a ball breaker |
| 2025-12-02 09:33:22 | <Lycurgus> | *quite practical |
| 2025-12-02 09:34:07 | <dminuoso> | chromoblob: Weechat. |
| 2025-12-02 09:34:22 | <lucabtz> | i ended up doing like this Rembane https://paste.tomsmeding.com/gp5xEGzv |
| 2025-12-02 09:34:37 | <Lycurgus> | the type sig circle jerks being a prime epiphenomon of that |
| 2025-12-02 09:34:47 | <sprout> | Axman6: yah, that must be the same thing |
| 2025-12-02 09:35:49 | × | DetourNetworkUK quits (DetourNetw@user/DetourNetworkUK) (Read error: Connection reset by peer) |
| 2025-12-02 09:36:49 | → | DetourNetworkUK joins (DetourNetw@user/DetourNetworkUK) |
| 2025-12-02 09:38:08 | × | merijn quits (~merijn@77.242.116.146) (Ping timeout: 240 seconds) |
| 2025-12-02 09:39:14 | → | merijn joins (~merijn@77.242.116.146) |
| 2025-12-02 09:49:29 | → | vgtw joins (~vgtw@user/vgtw) |
| 2025-12-02 09:50:47 | → | Googulator26 joins (~Googulato@2a01-036d-0106-4ad8-d9ec-010d-f188-ffcb.pool6.digikabel.hu) |
| 2025-12-02 09:50:47 | × | Googulator22 quits (~Googulato@2a01-036d-0106-4ad8-d9ec-010d-f188-ffcb.pool6.digikabel.hu) (Quit: Client closed) |
| 2025-12-02 09:55:08 | → | kuribas joins (~user@ip-188-118-57-242.reverse.destiny.be) |
| 2025-12-02 09:55:42 | <kuribas> | :t mapAccumL |
| 2025-12-02 09:55:43 | <lambdabot> | Traversable t => (s -> a -> (s, b)) -> s -> t a -> (s, t b) |
| 2025-12-02 09:56:23 | <kuribas> | I can make a transformer, but "StateT [] s a" would not work, as it trows away state. |
| 2025-12-02 09:56:41 | <kuribas> | Maybe ListT done right: ListT (State s) a |
| 2025-12-02 09:58:15 | × | vgtw quits (~vgtw@user/vgtw) (Ping timeout: 240 seconds) |
| 2025-12-02 09:58:56 | <kuribas> | or easier : concat $ runState $ traverse (state $ \s -> [...]) l |
| 2025-12-02 09:59:26 | → | vgtw joins (~vgtw@user/vgtw) |
| 2025-12-02 10:03:06 | <kuribas> | :t ListT |
| 2025-12-02 10:03:08 | <lambdabot> | error: [GHC-88464] |
| 2025-12-02 10:03:08 | <lambdabot> | Data constructor not in scope: ListT |
| 2025-12-02 10:03:08 | <lambdabot> | Suggested fix: Perhaps use ‘List’ (imported from Control.Lens) |
| 2025-12-02 10:03:42 | × | fp1 quits (~Thunderbi@2001:708:20:1406::1370) (Ping timeout: 252 seconds) |
| 2025-12-02 10:06:23 | <kuribas> | :t \f l -> concat $ flip runState 1 $ traverse (State . f) l |
| 2025-12-02 10:06:25 | <lambdabot> | error: [GHC-01928] |
| 2025-12-02 10:06:25 | <lambdabot> | • Illegal term-level use of the type constructor ‘State’ |
| 2025-12-02 10:06:25 | <lambdabot> | • imported from ‘Control.Monad.State’ at /home/lambda/.lambdabot/State/L.hs:65:1-26 |
| 2025-12-02 10:07:27 | <kuribas> | lambdabot: It's a type synonym ... |
| 2025-12-02 10:08:38 | → | comerijn joins (~merijn@77.242.116.146) |
| 2025-12-02 10:10:13 | × | Lycurgus quits (~juan@user/Lycurgus) (Quit: alsoknownas.renjuan.org ( juan@acm.org )) |
| 2025-12-02 10:10:55 | × | merijn quits (~merijn@77.242.116.146) (Ping timeout: 240 seconds) |
| 2025-12-02 10:11:47 | <kuribas> | Isn't ListT done right a logic monad? |
| 2025-12-02 10:12:04 | ← | kritzefitz parts (~kritzefit@debian/kritzefitz) () |
| 2025-12-02 10:12:40 | × | chromoblob quits (~chromoblo@user/chromob1ot1c) (Read error: Connection reset by peer) |
| 2025-12-02 10:13:45 | → | chromoblob joins (~chromoblo@user/chromob1ot1c) |
| 2025-12-02 10:14:27 | <tomsmeding> | :t \f l -> concat $ flip runState 1 $ traverse (state . f) l |
| 2025-12-02 10:14:29 | <lambdabot> | (Traversable t, Num [a1]) => (a2 -> [a1] -> (b, [a1])) -> t a2 -> [a1] |
| 2025-12-02 10:15:24 | <kuribas> | tomsmeding: https://hackage.haskell.org/package/mtl-2.3.1/docs/Control-Monad-State-Lazy.html#t:State |
| 2025-12-02 10:15:46 | <tomsmeding> | oh your were complaining about "type constructor" |
| 2025-12-02 10:15:56 | × | marinelli quits (~weechat@gateway/tor-sasl/marinelli) (Remote host closed the connection) |
| 2025-12-02 10:16:02 | <kuribas> | ah wait, it's StateT ... |
| 2025-12-02 10:16:06 | <kuribas> | sorry... |
All times are in UTC.