2026/05/31

Newest at the top

2026-05-31 02:45:55 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds)
2026-05-31 02:41:04 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-05-31 02:37:51 +0000 <jreicher> lisbeths: you don't store the arguments in a list. The lambda calculus expression IS the lsit.
2026-05-31 02:37:10 +0000Fijxu(~Fijxu@user/fijxu) fijxu
2026-05-31 02:36:26 +0000Fijxu(~Fijxu@user/fijxu) (Quit: XD!!)
2026-05-31 02:35:08 +0000 <lisbeths> im more talking about how to get fast arrays in lc
2026-05-31 02:34:37 +0000 <lisbeths> you can write lazy algorithms in lc by suspending the application of something and storing all the arguments in a list. it doesnt have to be built into the interpreter
2026-05-31 02:33:24 +0000 <jreicher> But for a really efficient implementation you need to figure out fast currying. In some ways it's the most difficult of the three.
2026-05-31 02:32:16 +0000 <jreicher> Memoisation of results depends a bit on whether you are reducing under abstractions. I've never seen an implementation of that, but it's sometimes called "full laziness". Would be cool if someone did it.
2026-05-31 02:31:05 +0000 <jreicher> And that's not even covering how you might represent the result of a beta reduction. The expensive way to do it is to generate a new lambda expression, but if performance is not a consideration there's actually nothing wrong with that. The use of environments, etc. is really just an optimisation.
2026-05-31 02:30:21 +0000 <jreicher> For that there are (at least) three kinds of optimisation. One is tail call optimisation. Another is fast currying. And then another is lazy evaluation, which is the memoisation of results.
2026-05-31 02:30:13 +0000bitdex(~bitdex@gateway/tor-sasl/bitdex) bitdex
2026-05-31 02:30:01 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 248 seconds)
2026-05-31 02:29:35 +0000 <jreicher> machine. Next is the implementation itself...
2026-05-31 02:29:35 +0000 <jreicher> lisbeths: there are (at least) two different domains of lambda calculus evaluation performance. One is the calculus itself, i.e. some evaluation orders are shorter than others. In the K-calculus, some evaluations don't terminate at all. The term "lazy" evaluation is sometimes used (incorrectly, in my opinion) to refer to evaluation order. You should make sure you're doing normal order evaluation. That's kind of the bare minimum for a
2026-05-31 02:25:06 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-05-31 02:19:25 +0000bitdex(~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 252 seconds)
2026-05-31 02:17:59 +0000td_(~td@i53870937.versanet.de)
2026-05-31 02:16:06 +0000td_(~td@i53870907.versanet.de) (Ping timeout: 243 seconds)
2026-05-31 02:14:24 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds)
2026-05-31 02:09:44 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-05-31 02:05:40 +0000op_4(~tslil@user/op-4/x-9116473) op_4
2026-05-31 02:05:02 +0000op_4(~tslil@user/op-4/x-9116473) (Remote host closed the connection)
2026-05-31 01:59:02 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 265 seconds)
2026-05-31 01:53:55 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-05-31 01:42:53 +0000Pozyomka_(~pyon@user/pyon) pyon
2026-05-31 01:42:53 +0000Pozyomka(~pyon@user/pyon) (Remote host closed the connection)
2026-05-31 01:42:36 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 256 seconds)
2026-05-31 01:35:54 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-05-31 01:26:27 +0000Pozyomka(~pyon@user/pyon) pyon
2026-05-31 01:26:08 +0000Pozyomka_(~pyon@user/pyon) (Remote host closed the connection)
2026-05-31 01:25:03 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 261 seconds)
2026-05-31 01:21:40 +0000acidjnk_new(~acidjnk@p200300d6e700e5548c17d531dbcfc9e6.dip0.t-ipconnect.de) (Ping timeout: 252 seconds)
2026-05-31 01:21:40 +0000acidjnk(~acidjnk@p200300d6e700e5548c17d531dbcfc9e6.dip0.t-ipconnect.de) (Ping timeout: 252 seconds)
2026-05-31 01:20:09 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-05-31 01:15:53 +0000puke(~puke@user/puke) puke
2026-05-31 01:10:26 +0000puke(~puke@user/puke) (Quit: puke)
2026-05-31 01:09:27 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds)
2026-05-31 01:04:20 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-05-31 00:59:34 +0000Vizious(~bes@user/Vizious) Vizious
2026-05-31 00:57:21 +0000Vizious(~bes@user/Vizious) (Ping timeout: 246 seconds)
2026-05-31 00:56:40 +0000pavonia(~user@user/siracusa) siracusa
2026-05-31 00:53:46 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 276 seconds)
2026-05-31 00:51:18 +0000Pozyomka(~pyon@user/pyon) (Remote host closed the connection)
2026-05-31 00:51:13 +0000Pozyomka_(~pyon@user/pyon) pyon
2026-05-31 00:48:35 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-05-31 00:37:33 +0000merijn(~merijn@62.45.136.136) (Ping timeout: 252 seconds)
2026-05-31 00:33:10 +0000merijn(~merijn@62.45.136.136) merijn
2026-05-31 00:22:09 +0000merijn(~merijn@62.45.136.136) (Ping timeout: 252 seconds)
2026-05-31 00:21:59 +0000Icy-Thought(~user@user/icy-thought) (Ping timeout: 245 seconds)