2024/10/08

Newest at the top

2024-10-08 23:15:26 +0200 <dolio> They don't have to be.
2024-10-08 23:15:22 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-10-08 23:13:04 +0200biberu(~biberu@user/biberu) (Read error: Connection reset by peer)
2024-10-08 23:11:13 +0200 <haskellbridge> <thirdofmay18081814goya> dolio: models for algebraic theories are given by monads
2024-10-08 23:10:35 +0200 <monochrom> Because I write code like "foo x = { y <- op0 x; if | pred1 y -> op1 y | pred2 y -> op2 y | otherwise -> {z <- op3 y; foo z}}". That needs at least Selective+Arrow.
2024-10-08 23:09:46 +0200weary-traveler(~user@user/user363627) user363627
2024-10-08 23:08:59 +0200michalz(~michalz@185.246.207.222) (Remote host closed the connection)
2024-10-08 23:06:09 +0200takuan(~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection)
2024-10-08 23:05:14 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 272 seconds)
2024-10-08 23:03:10 +0200 <dolio> I.E. that looks basically like, 'M is a family of S-models,' but why only consider S-models that can be assembled into a monad?
2024-10-08 23:01:14 +0200ubert(~Thunderbi@178.165.187.120.wireless.dyn.drei.com) (Ping timeout: 260 seconds)
2024-10-08 23:01:13 +0200alexherbo2(~alexherbo@2a02-8440-3215-f56e-1190-0b59-796f-612e.rev.sfr.net) (Ping timeout: 256 seconds)
2024-10-08 22:59:35 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-10-08 22:57:13 +0200 <biberao> monochrom: so you're a professor?
2024-10-08 22:54:23 +0200zfnmxt(~zfnmxt@user/zfnmxt) zfnmxt
2024-10-08 22:53:18 +0200moe_(~moe@lewi-19-b2-v4wan-169604-cust1264.vm4.cable.virginm.net) (Ping timeout: 252 seconds)
2024-10-08 22:50:03 +0200Angelz(Angelz@2605:6400:30:fc15:9bd1:2217:41cd:bb15) (Ping timeout: 246 seconds)
2024-10-08 22:48:49 +0200zfnmxt(~zfnmxt@user/zfnmxt) (Ping timeout: 248 seconds)
2024-10-08 22:48:48 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds)
2024-10-08 22:46:14 +0200 <dolio> You probably replace the monad with 'models'.
2024-10-08 22:46:08 +0200 <monochrom> Did you know: When teaching computability, I pioneered renaming "not recognizable" to "unrecognizable". >:)
2024-10-08 22:45:10 +0200 <tomsmeding> (talking about English: "upplay" is a nice coinage)
2024-10-08 22:44:45 +0200 <tomsmeding> Lears: but thanks for the concise and understandable (to my haskell brain) definition!
2024-10-08 22:44:00 +0200 <monochrom> Many effect languages (eg Koka) don't expose the underlying monads to the programmers. However, the monad is there in the math theory. You can always choose to upplay or downplay it though.
2024-10-08 22:43:49 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-10-08 22:42:54 +0200 <tomsmeding> Lears: I'll have to pick the brain of the person who explained effects to me again :p
2024-10-08 22:41:46 +0200 <monochrom> From the grand unified CT POV I just teach one course: Kleisli categories. After symmetry breaking at low energies, it looks like I teach two courses: Unix, Haskell. >:)
2024-10-08 22:41:27 +0200 <Lears> tomsmeding: The usual definition of algebraicity of an effect `op` is: 1. `op :: forall a. S (M a) -> M a` for some functor `S` and monad `M`; 2. `forall x, k. op x >>= k = op (x <&> (>>= k))`. Good luck extricating monad from that.
2024-10-08 22:38:24 +0200 <tomsmeding> the {} being unnecessary
2024-10-08 22:38:18 +0200 <tomsmeding> if you insist on putting the redirection first, I would prefer "<input filter | sum" :p
2024-10-08 22:38:08 +0200 <monochrom> #1 source of mysterious syntax error messages
2024-10-08 22:37:51 +0200 <tomsmeding> ah right
2024-10-08 22:37:38 +0200 <monochrom> Oops I forgot the semicolon.
2024-10-08 22:37:12 +0200 <geekosaur> I learned it from the old Bourne shell manual, although back then you needed extra semicolons (`{; filter | sum; }`)
2024-10-08 22:37:11 +0200 <monochrom> Also I know that students just google for solutions and hand in "sum <(filter < input)" which is the equiv of using (&) so I declare "no bash feature, only posix shell" to force them to learn pipelining.
2024-10-08 22:36:13 +0200 <tomsmeding> but the spacing (space after '<', no space after '{') and the ordering (what you say), combined with 'filter' and 'sum' not being the right commands here, made my brain not recognise it :p
2024-10-08 22:35:29 +0200 <monochrom> I actually read the bloody POSIX/OpenGroup docs to learn the detailed grammar!
2024-10-08 22:35:27 +0200 <tomsmeding> I knew that
2024-10-08 22:35:22 +0200 <geekosaur> yep, redirections can go anywhere in a command
2024-10-08 22:35:11 +0200 <tomsmeding> it is
2024-10-08 22:35:09 +0200 <tomsmeding> oh hah
2024-10-08 22:35:06 +0200 <monochrom> And yes "<file cmd" is the same as "cmd <file"
2024-10-08 22:34:52 +0200 <monochrom> plain bourne shell!
2024-10-08 22:34:37 +0200 <tomsmeding> what language is that lol
2024-10-08 22:34:36 +0200moe_(~moe@lewi-19-b2-v4wan-169604-cust1264.vm4.cable.virginm.net)
2024-10-08 22:34:19 +0200 <monochrom> I teach a Unix course so I prioritize "< input {filter | sum}". :)
2024-10-08 22:32:58 +0200 <tomsmeding> also: [0..1000] & filter (\x -> ...) & sum
2024-10-08 22:32:36 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 244 seconds)
2024-10-08 22:32:29 +0200 <monochrom> sam113101: Consider [0..1000] & (filter (\x -> ...) >>> sum). >>> is from Control.Category, it looks general, but this one specializes to flip (.)
2024-10-08 22:31:18 +0200 <sam113101> I remembering tyring to learn haskell