2025/12/04

Newest at the top

2025-12-04 10:33:35 +0100 <jreicher> It does. But like I said, that's an optimisation IMO.
2025-12-04 10:33:21 +0100 <sprout> haskell must have a stack of redexes though
2025-12-04 10:32:58 +0100 <jreicher> I would argue Haskell is not really so different. All the heap objects form that graph, and any differences can probably be characterised as very clever optimisations.
2025-12-04 10:32:57 +0100 <sprout> like 'hey, here's a different manner of implementing a term rewriter'
2025-12-04 10:32:26 +0100 <sprout> it's interesting to people doing plt
2025-12-04 10:32:15 +0100 <sprout> succesful experiment, mostly a failed too slow language though
2025-12-04 10:31:44 +0100 <lambdabot> <hint>:1:67: error: parse error on input `,'
2025-12-04 10:31:40 +0100 <sprout> > Egel is primarily about exploiting a trivialized operational model, a program (state) can be represented as a directed acyclic graph solely and program evaluation corresponds to trampolining the combinator at the root of that graph.
2025-12-04 10:31:37 +0100 <sprout> but it's an esolang in that it's an experiment with an operational model
2025-12-04 10:31:15 +0100 <jreicher> Yeah, that's what stood out to me.
2025-12-04 10:31:03 +0100 <sprout> well, it has most IO
2025-12-04 10:30:33 +0100 <jreicher> I consider anything limited to stdin and sdtout to be toy. Doesn't mean it's not theoretically significant though, of course.
2025-12-04 10:29:55 +0100 <jreicher> As a rough and ready definition, "practical" is "can at least do IO with files, but should approach an FFI"
2025-12-04 10:29:45 +0100 <sprout> cannot recommend
2025-12-04 10:29:42 +0100 <sprout> so not practical
2025-12-04 10:29:38 +0100marinelli(~weechat@gateway/tor-sasl/marinelli) marinelli
2025-12-04 10:29:37 +0100 <sprout> well, maybe not that buggy. but slow
2025-12-04 10:29:28 +0100arandombit(~arandombi@user/arandombit) arandombit
2025-12-04 10:29:25 +0100 <sprout> slow and buggy
2025-12-04 10:29:19 +0100 <sprout> mwa, pretty shitty interpreter
2025-12-04 10:29:05 +0100 <sprout> although I don't know what you consider *practical*
2025-12-04 10:29:02 +0100 <jreicher> :) Ta. That one I already knew, but I had never heard of Egel and it's the first practical-ish one I've seen in a while.
2025-12-04 10:28:24 +0100 <sprout> well, nix then
2025-12-04 10:27:06 +0100 <jreicher> sprout: In case it's worth saying, I meant practical untyped functional languages; not toy languages.
2025-12-04 10:23:28 +0100tromp(~textual@2001:1c00:3487:1b00:a4ed:9e46:fd5d:6b4e) (Quit: My iMac has gone to sleep. ZZZzzz…)
2025-12-04 10:16:59 +0100 <merijn> jackdk: Ocaml is clearly functional, just not pure
2025-12-04 10:16:25 +0100 <merijn> They're just more principled (or making your jump through more hoops to use the unprincipled ones)
2025-12-04 10:16:04 +0100 <merijn> Also, Haskell admits mutable references too :p
2025-12-04 10:15:19 +0100lambda_gibbon(~lambda_gi@2603:7080:ee00:37d8:313d:1898:c3f8:5287) (Ping timeout: 264 seconds)
2025-12-04 10:13:47 +0100kuribas(~user@2a02:1808:51:4205:f3c0:d777:6713:bee2) (ERC 5.5.0.29.1 (IRC client for GNU Emacs 29.3))
2025-12-04 10:10:47 +0100 <jreicher> The only reason Lisp feels functional is an almost-coincidental side effect of "everything is data" is that functions become first class.
2025-12-04 10:09:49 +0100 <jreicher> Lisp doesn't admit mutable references. In Lisp EVERYTHING is mutable because there's no code; only data. And all the data is mutable. And then you can direct the language to interpret one of data structures as code. In a functional language things are primarily code, and if data is admitted then it just means it's not pure.
2025-12-04 10:08:08 +0100emmanuelux(~emmanuelu@user/emmanuelux) (Remote host closed the connection)
2025-12-04 10:07:44 +0100lambda_gibbon(~lambda_gi@2603:7080:ee00:37d8:313d:1898:c3f8:5287)
2025-12-04 10:07:23 +0100 <jackdk> I'm curious if you consider ocaml a functional language then, because I can see arguments in both directions. It's definitely from a functional tradition but admits mutable references like many lisps do. But I'd definitely consider it "culturally" functional in that AFAIK people write pure interfaces around mutable bits, etc
2025-12-04 10:07:02 +0100chiselfuse(~chiselfus@user/chiselfuse) (Remote host closed the connection)
2025-12-04 10:06:26 +0100merijn(~merijn@77.242.116.146) merijn
2025-12-04 10:03:15 +0100 <jreicher> sprout: I don't consider Lisp to be a functional language. I get in trouble in Lisp channels for saying that but I expect there might be a bit more sympathy for the view here.
2025-12-04 09:59:32 +0100iqubic(~sophia@2601:602:9203:1660:d33f:96d:145c:6b4b) iqubic
2025-12-04 09:57:55 +0100orizuru(~orizuru@user/orizuru) orizuru
2025-12-04 09:57:55 +0100orizuru(~orizuru@178-79-171-63.ip.linodeusercontent.com) (Changing host)
2025-12-04 09:56:42 +0100orizuru(~orizuru@178-79-171-63.ip.linodeusercontent.com)
2025-12-04 09:56:13 +0100trickard_(~trickard@cpe-85-98-47-163.wireline.com.au)
2025-12-04 09:55:59 +0100trickard(~trickard@cpe-85-98-47-163.wireline.com.au) (Read error: Connection reset by peer)
2025-12-04 09:55:48 +0100kuribas(~user@2a02:1808:51:4205:f3c0:d777:6713:bee2) kuribas
2025-12-04 09:55:35 +0100kuribas(~user@2a02:1808:51:4205:657b:77d9:3519:9aaf) (Remote host closed the connection)
2025-12-04 09:54:53 +0100user363627(~user@user/user363627) user363627
2025-12-04 09:54:46 +0100weary-traveler(~user@user/user363627) (Quit: Konversation terminated!)
2025-12-04 09:54:19 +0100orizuru(~orizuru@user/orizuru) (Quit: The Lounge - https://thelounge.chat)
2025-12-04 09:49:54 +0100iqubic(~sophia@2601:602:9203:1660:661f:14db:875e:5d74) (Remote host closed the connection)