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 +0100 | marinelli | (~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 +0100 | arandombit | (~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 +0100 | tromp | (~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 +0100 | lambda_gibbon | (~lambda_gi@2603:7080:ee00:37d8:313d:1898:c3f8:5287) (Ping timeout: 264 seconds) |
| 2025-12-04 10:13:47 +0100 | kuribas | (~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 +0100 | emmanuelux | (~emmanuelu@user/emmanuelux) (Remote host closed the connection) |
| 2025-12-04 10:07:44 +0100 | lambda_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 +0100 | chiselfuse | (~chiselfus@user/chiselfuse) (Remote host closed the connection) |
| 2025-12-04 10:06:26 +0100 | merijn | (~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 +0100 | iqubic | (~sophia@2601:602:9203:1660:d33f:96d:145c:6b4b) iqubic |
| 2025-12-04 09:57:55 +0100 | orizuru | (~orizuru@user/orizuru) orizuru |
| 2025-12-04 09:57:55 +0100 | orizuru | (~orizuru@178-79-171-63.ip.linodeusercontent.com) (Changing host) |
| 2025-12-04 09:56:42 +0100 | orizuru | (~orizuru@178-79-171-63.ip.linodeusercontent.com) |
| 2025-12-04 09:56:13 +0100 | trickard_ | (~trickard@cpe-85-98-47-163.wireline.com.au) |
| 2025-12-04 09:55:59 +0100 | trickard | (~trickard@cpe-85-98-47-163.wireline.com.au) (Read error: Connection reset by peer) |
| 2025-12-04 09:55:48 +0100 | kuribas | (~user@2a02:1808:51:4205:f3c0:d777:6713:bee2) kuribas |
| 2025-12-04 09:55:35 +0100 | kuribas | (~user@2a02:1808:51:4205:657b:77d9:3519:9aaf) (Remote host closed the connection) |
| 2025-12-04 09:54:53 +0100 | user363627 | (~user@user/user363627) user363627 |
| 2025-12-04 09:54:46 +0100 | weary-traveler | (~user@user/user363627) (Quit: Konversation terminated!) |
| 2025-12-04 09:54:19 +0100 | orizuru | (~orizuru@user/orizuru) (Quit: The Lounge - https://thelounge.chat) |
| 2025-12-04 09:49:54 +0100 | iqubic | (~sophia@2601:602:9203:1660:661f:14db:875e:5d74) (Remote host closed the connection) |