2025/07/31

Newest at the top

2025-07-31 15:35:52 +0200trickard_(~trickard@cpe-49-98-47-163.wireline.com.au)
2025-07-31 15:35:39 +0200trickard_(~trickard@cpe-49-98-47-163.wireline.com.au) (Read error: Connection reset by peer)
2025-07-31 15:31:27 +0200 <__monty__> Right, my mistake, I keep wanting to expect shell expansion of ~ where it has no reason to be.
2025-07-31 15:28:45 +0200Reality2point0(~Reality2p@2a02:3035:665:a078:7ac6:f05a:b961:839e) (Gotta go do some actual work. :D)
2025-07-31 15:26:38 +0200 <Reality2point0> Leary: “Special synax” is what I have a problem with.
2025-07-31 15:26:25 +0200 <Leary> Strictly speaking, I should have said `Foo{bar baz}`.
2025-07-31 15:26:08 +0200 <Leary> The data constructor becomes special syntax.
2025-07-31 15:25:52 +0200 <Leary> That's the result of ordinary function application, yes. Layout heralds are not that.
2025-07-31 15:25:17 +0200 <Reality2point0> Leary: Wait, why `Foo (bar baz)`? I thought it was `(((Foo) bar) baz)`.
2025-07-31 15:24:34 +0200 <__monty__> yahb2: System.Directory.makeAbsolute "~/some/path"
2025-07-31 15:24:03 +0200 <lambdabot> No module named ‘System.Directory’ is imported.
2025-07-31 15:24:03 +0200 <lambdabot> Not in scope: ‘System.Directory.makeAbsolute’
2025-07-31 15:24:03 +0200 <lambdabot> error:
2025-07-31 15:24:02 +0200 <__monty__> > System.Directory.makeAbsolute "~/some/path"
2025-07-31 15:23:21 +0200 <Reality2point0> __monty__ "~" as in "a directory with the actual name "~" is a relative path. "~" as in "getting expanded to $HOME" is an absolute path.
2025-07-31 15:22:39 +0200 <kuribas> The only thing I don't like is that indentation advances so fast.
2025-07-31 15:22:17 +0200 <kuribas> You don't even look at braces, you just let the editor handle them.
2025-07-31 15:21:54 +0200 <Reality2point0> Yes, Lisp is very nicely emergent. But humans are not good with repetitivity. So the closing braces piling up is its downfall.
2025-07-31 15:21:28 +0200 <Leary> Reality2point0: If the data constructor `Foo` heralds layout, then `Foo bar baz` is parsed as `Foo (bar baz)`. To get the expected result without line breaks requires `Foo{bar;baz}`.
2025-07-31 15:21:26 +0200 <__monty__> Am I the only one to consider it inconsistent that System.FilePath.isRelative considers ~ prefixed paths relative but System.Directory.{makeAbsolute,canonicalizePath} prepend the PWD?
2025-07-31 15:21:01 +0200 <Reality2point0> kuribas: Correct.
2025-07-31 15:21:01 +0200 <kuribas> I am even happy with lisps.
2025-07-31 15:20:49 +0200 <Reality2point0> kuribas: Easy is not a good thing. The easiest thing in life is to just lay there and vegetate or die.
2025-07-31 15:20:42 +0200 <kuribas> It's just syntax, I don't see why that should be so complex.
2025-07-31 15:20:03 +0200 <Reality2point0> Leary: What would it break exactly?
2025-07-31 15:19:30 +0200 <Reality2point0> kuribas: Let’s correct that to: The layout rule has too many quirks. It should have few rules but those should be as powerful as possible. If you just want extremely simple, just get a rock. (Or a perfectly featureless slice of mirror. Aka an iPhone 50 or so. ;) ) It’s perfectly simple. And useless.
2025-07-31 15:17:01 +0200DigitteknohippieDigit
2025-07-31 15:17:00 +0200 <Reality2point0> TMA: No, not simpler at the expense of power. That is just dumbing down. That’s what commercial software companies are for. XD … More *emergent*! Aka more power for less complexity. Like you can combine a very few different types of LEGO bricks to countless things.
2025-07-31 15:16:57 +0200 <kuribas> Reality2point0: view in dependently typed language are different, in that they also change the normalisation of expressions.
2025-07-31 15:15:36 +0200 <Reality2point0> kuribas: I noticed that I rediscover the “view” concept quite often in programming, in general. E.g. in Plan9, files could just be views of something else, via a file server. Under Linux, you can mount your own FUSE file system consisting of a single file that is live generated on read.
2025-07-31 15:15:10 +0200 <TMA> Reality2point0: simpler? just get rid of the 2D syntax altogether.
2025-07-31 15:14:22 +0200 <kuribas> I am not even fan of indentation sensitive syntax, but at least python is way easier.
2025-07-31 15:14:16 +0200 <Leary> {;} syntax is used for things that /can/ be layout, because they have a layout /herald/, such as `do`, `of`, `let` or `where`. Data constructors don't have one, and making data constructors themselves herald layout would break existing syntax. So you'd need to introduce a new herald or reuse an existing one for the purpose.
2025-07-31 15:13:28 +0200CiaoSen(~Jura@2a02:8071:64e1:da0:5a47:caff:fe78:33db) CiaoSen
2025-07-31 15:13:19 +0200 <kuribas> I think layout rule is just way overcomplicated, and often confusing for newbees.
2025-07-31 15:13:02 +0200 <Reality2point0> TMA: My whole point was to make it simpler.
2025-07-31 15:12:42 +0200 <Reality2point0> data definition with records in the first place.)
2025-07-31 15:12:42 +0200 <Reality2point0> kuribas: Yes, I just recently implemented a different layout rule for a file syntax of my own. It is indeed more complex than one thinks. But it’s not _that_ complex. Or rather, one should prioritize highly emergent rules, and rather alter the syntax than make the parser more complex. (Which is why I suggested not having a separate parser for
2025-07-31 15:11:30 +0200 <kuribas> It doesn't have guards, but has views.
2025-07-31 15:11:21 +0200 <TMA> the complexity of the layout rules of haskell made me hate the language for several years, don't make it more complex
2025-07-31 15:11:13 +0200 <kuribas> Reality2point0: idris2 only resembles haskell superficially, it has many differences. Dependently typed, strict, other syntaxes, allowing for overloading do, list syntax, ...
2025-07-31 15:10:52 +0200acidjnk_new(~acidjnk@p200300d6e7171990bc5728ea616be3b0.dip0.t-ipconnect.de) (Ping timeout: 276 seconds)
2025-07-31 15:10:44 +0200 <Reality2point0> like the wrong way o go for me.)
2025-07-31 15:10:43 +0200 <Reality2point0> In fact I started using Haskell because I designed my own language at the time, and it just did all the things I planned, but was much more developed, so I just used Haskell instead. It still has some ugly points where it is lacking to what I would consider ideal. (E.g. the loads of boilerplate. And the record syntax. Plus TemplateHaskell seems
2025-07-31 15:08:10 +0200 <kuribas> I am not being condescending. I implemented the layout rule in emacs, and it is quite complex/subtle. I am pretty sure noone is waiting for adding more complexity to it.
2025-07-31 15:07:49 +0200 <Reality2point0> kuribas: Why?
2025-07-31 15:07:44 +0200 <Reality2point0> kuribas: Hard to define, since I know it since Haskell 98 came out, but I didn’t use it as my main language for a long time.
2025-07-31 15:07:42 +0200Digit(~user@user/digit) (Ping timeout: 276 seconds)
2025-07-31 15:06:35 +0200Digitteknohippie(~user@user/digit) Digit
2025-07-31 15:06:30 +0200 <Reality2point0> kuribas: Sounds nice. Though I still see two different syntaxes in the examples. (The `:` and `->` one, and the other one.)