Logs: liberachat/#haskell
| 2025-12-04 08:29:22 | <sprout> | wasn't there some package manager language lazy, untyped, functional? |
| 2025-12-04 08:30:23 | <sprout> | nix |
| 2025-12-04 08:30:45 | edm | is now known as edmerry |
| 2025-12-04 08:31:07 | <sprout> | https://nix.dev/tutorials/nix-language |
| 2025-12-04 08:31:17 | <haskellbridge> | <iqubic (she/her)> Yeah. Nix |
| 2025-12-04 08:31:18 | <haskellbridge> | <iqubic (she/her)> Nix is good. |
| 2025-12-04 08:31:37 | × | marinelli quits (~weechat@gateway/tor-sasl/marinelli) (Quit: marinelli) |
| 2025-12-04 08:33:08 | → | lambda_gibbon joins (~lambda_gi@2603:7080:ee00:37d8:313d:1898:c3f8:5287) |
| 2025-12-04 08:37:42 | × | lambda_gibbon quits (~lambda_gi@2603:7080:ee00:37d8:313d:1898:c3f8:5287) (Ping timeout: 252 seconds) |
| 2025-12-04 08:37:55 | → | chele joins (~chele@user/chele) |
| 2025-12-04 08:38:24 | × | tzh quits (~tzh@c-76-115-131-146.hsd1.or.comcast.net) (Quit: zzz) |
| 2025-12-04 08:41:49 | × | arandombit quits (~arandombi@user/arandombit) (Ping timeout: 246 seconds) |
| 2025-12-04 08:46:55 | × | xff0x quits (~xff0x@fsb6a9491c.tkyc517.ap.nuro.jp) (Ping timeout: 240 seconds) |
| 2025-12-04 08:47:06 | → | kuribas joins (~user@2a02:1808:51:4205:657b:77d9:3519:9aaf) |
| 2025-12-04 08:49:54 | × | iqubic quits (~sophia@2601:602:9203:1660:661f:14db:875e:5d74) (Remote host closed the connection) |
| 2025-12-04 08:54:19 | × | orizuru quits (~orizuru@user/orizuru) (Quit: The Lounge - https://thelounge.chat) |
| 2025-12-04 08:54:46 | × | weary-traveler quits (~user@user/user363627) (Quit: Konversation terminated!) |
| 2025-12-04 08:54:53 | → | user363627 joins (~user@user/user363627) |
| 2025-12-04 08:55:35 | × | kuribas quits (~user@2a02:1808:51:4205:657b:77d9:3519:9aaf) (Remote host closed the connection) |
| 2025-12-04 08:55:48 | → | kuribas joins (~user@2a02:1808:51:4205:f3c0:d777:6713:bee2) |
| 2025-12-04 08:55:59 | × | trickard quits (~trickard@cpe-85-98-47-163.wireline.com.au) (Read error: Connection reset by peer) |
| 2025-12-04 08:56:13 | → | trickard_ joins (~trickard@cpe-85-98-47-163.wireline.com.au) |
| 2025-12-04 08:56:42 | → | orizuru joins (~orizuru@178-79-171-63.ip.linodeusercontent.com) |
| 2025-12-04 08:57:55 | × | orizuru quits (~orizuru@178-79-171-63.ip.linodeusercontent.com) (Changing host) |
| 2025-12-04 08:57:55 | → | orizuru joins (~orizuru@user/orizuru) |
| 2025-12-04 08:59:32 | → | iqubic joins (~sophia@2601:602:9203:1660:d33f:96d:145c:6b4b) |
| 2025-12-04 09:03:15 | <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:06:26 | → | merijn joins (~merijn@77.242.116.146) |
| 2025-12-04 09:07:02 | × | chiselfuse quits (~chiselfus@user/chiselfuse) (Remote host closed the connection) |
| 2025-12-04 09:07:23 | <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 09:07:44 | → | lambda_gibbon joins (~lambda_gi@2603:7080:ee00:37d8:313d:1898:c3f8:5287) |
| 2025-12-04 09:08:08 | × | emmanuelux quits (~emmanuelu@user/emmanuelux) (Remote host closed the connection) |
| 2025-12-04 09:09:49 | <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 09:10:47 | <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 09:13:47 | ← | kuribas parts (~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 09:15:19 | × | lambda_gibbon quits (~lambda_gi@2603:7080:ee00:37d8:313d:1898:c3f8:5287) (Ping timeout: 264 seconds) |
| 2025-12-04 09:16:04 | <merijn> | Also, Haskell admits mutable references too :p |
| 2025-12-04 09:16:25 | <merijn> | They're just more principled (or making your jump through more hoops to use the unprincipled ones) |
| 2025-12-04 09:16:59 | <merijn> | jackdk: Ocaml is clearly functional, just not pure |
| 2025-12-04 09:23:28 | × | tromp quits (~textual@2001:1c00:3487:1b00:a4ed:9e46:fd5d:6b4e) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 2025-12-04 09:27:06 | <jreicher> | sprout: In case it's worth saying, I meant practical untyped functional languages; not toy languages. |
| 2025-12-04 09:28:24 | <sprout> | well, nix then |
| 2025-12-04 09:29:02 | <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 09:29:05 | <sprout> | although I don't know what you consider *practical* |
| 2025-12-04 09:29:19 | <sprout> | mwa, pretty shitty interpreter |
| 2025-12-04 09:29:25 | <sprout> | slow and buggy |
| 2025-12-04 09:29:28 | → | arandombit joins (~arandombi@user/arandombit) |
| 2025-12-04 09:29:37 | <sprout> | well, maybe not that buggy. but slow |
| 2025-12-04 09:29:38 | → | marinelli joins (~weechat@gateway/tor-sasl/marinelli) |
| 2025-12-04 09:29:42 | <sprout> | so not practical |
| 2025-12-04 09:29:45 | <sprout> | cannot recommend |
| 2025-12-04 09:29:55 | <jreicher> | As a rough and ready definition, "practical" is "can at least do IO with files, but should approach an FFI" |
| 2025-12-04 09:30:33 | <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 09:31:03 | <sprout> | well, it has most IO |
| 2025-12-04 09:31:15 | <jreicher> | Yeah, that's what stood out to me. |
| 2025-12-04 09:31:37 | <sprout> | but it's an esolang in that it's an experiment with an operational model |
| 2025-12-04 09:31:40 | <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 09:31:44 | <lambdabot> | <hint>:1:67: error: parse error on input `,' |
| 2025-12-04 09:32:15 | <sprout> | succesful experiment, mostly a failed too slow language though |
| 2025-12-04 09:32:26 | <sprout> | it's interesting to people doing plt |
| 2025-12-04 09:32:57 | <sprout> | like 'hey, here's a different manner of implementing a term rewriter' |
| 2025-12-04 09:32:58 | <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 09:33:21 | <sprout> | haskell must have a stack of redexes though |
| 2025-12-04 09:33:35 | <jreicher> | It does. But like I said, that's an optimisation IMO. |
| 2025-12-04 09:34:57 | <sprout> | sure. I cannot even state it's a very bright idea. just something silly I wanted to show works |
| 2025-12-04 09:35:04 | → | dhil joins (~dhil@5.151.29.139) |
| 2025-12-04 09:35:15 | <sprout> | and then a decade later I am still stuck with an interpreter :/ |
| 2025-12-04 09:35:19 | <sprout> | ah well |
| 2025-12-04 09:36:34 | <sprout> | it's interesting since it simplifies normal rather elaborate machinery for evaluation like a SECD or CAM machine |
| 2025-12-04 09:37:02 | <sprout> | theoretically interesting |
| 2025-12-04 09:37:13 | <sprout> | practically, not so much |
| 2025-12-04 09:37:19 | <sprout> | well, that's what I feel |
| 2025-12-04 09:41:54 | → | acidjnk joins (~acidjnk@p200300d6e71719824d363649e1e7df87.dip0.t-ipconnect.de) |
| 2025-12-04 09:42:01 | × | merijn quits (~merijn@77.242.116.146) (Ping timeout: 264 seconds) |
| 2025-12-04 09:42:07 | × | Lord_of_Life quits (~Lord@user/lord-of-life/x-2819915) (Quit: Laa shay'a waqi'un moutlaq bale kouloun moumkine) |
| 2025-12-04 09:42:35 | <jreicher> | Is Egel yours? |
| 2025-12-04 09:42:39 | <sprout> | yah |
| 2025-12-04 09:43:02 | <jreicher> | Like I said, it stood out. I don't think many other people have tried to do something like it. It's not toy; you've made it practical. |
| 2025-12-04 09:43:15 | <sprout> | oh. thanks! |
| 2025-12-04 09:43:37 | <jreicher> | That's why I was asking if you knew any others. It's rare. |
| 2025-12-04 09:43:37 | × | img quits (~img@user/img) (Quit: ZNC 1.10.1 - https://znc.in) |
| 2025-12-04 09:43:43 | <jreicher> | (I think) |
| 2025-12-04 09:44:04 | <sprout> | still. cannot recommend.. |
| 2025-12-04 09:44:11 | <sprout> | it's an esolang at heart |
| 2025-12-04 09:44:26 | <sprout> | maybe I'll find use for it somewhere sometime |
| 2025-12-04 09:44:39 | → | lambda_gibbon joins (~lambda_gi@2603:7080:ee00:37d8:313d:1898:c3f8:5287) |
| 2025-12-04 09:44:51 | → | img joins (~img@user/img) |
| 2025-12-04 09:49:24 | × | lambda_gibbon quits (~lambda_gi@2603:7080:ee00:37d8:313d:1898:c3f8:5287) (Ping timeout: 260 seconds) |
| 2025-12-04 09:52:34 | × | robobub quits (uid248673@id-248673.uxbridge.irccloud.com) (Quit: Connection closed for inactivity) |
| 2025-12-04 09:52:34 | → | xff0x joins (~xff0x@om126158246192.30.openmobile.ne.jp) |
| 2025-12-04 09:54:07 | trickard_ | is now known as trickard |
| 2025-12-04 09:54:23 | × | xff0x quits (~xff0x@om126158246192.30.openmobile.ne.jp) (Read error: Connection reset by peer) |
| 2025-12-04 09:54:56 | → | merijn joins (~merijn@77.242.116.146) |
| 2025-12-04 09:59:24 | → | ljdarj joins (~Thunderbi@user/ljdarj) |
| 2025-12-04 09:59:45 | → | xff0x joins (~xff0x@fs98a57788.tkyc008.ap.nuro.jp) |
| 2025-12-04 10:01:28 | → | annamalai joins (~annamalai@157.32.217.175) |
| 2025-12-04 10:03:38 | → | Lord_of_Life joins (~Lord@user/lord-of-life/x-2819915) |
| 2025-12-04 10:04:08 | → | lambda_gibbon joins (~lambda_gi@2603:7080:ee00:37d8:313d:1898:c3f8:5287) |
| 2025-12-04 10:04:28 | → | inline__ joins (~wbooze@2001-4dd4-1daa-0-5961-9b55-d1ca-8eee.ipv6dyn.netcologne.de) |
| 2025-12-04 10:05:10 | inline__ | is now known as wbooze |
All times are in UTC.