!9IQChSjwSHXPPWTa:lix.systems

Lix

1117 Members
Lix user channel. Feel free to discuss on-topic issues here and give each other help. For matrix.to links to the rest of the Lix channels, see: https://wiki.lix.systems/books/lix-organisation/page/matrix-rooms300 Servers

Load older messages


SenderMessageTime
11 Dec 2025
@charles:computer.surgeryCharles i for identifier but i don't care, feel free to pick something else like v for variable 21:20:08
@commentator2.0:elia.gardenRutile (Commentator2.0) feel free to ping non-arbitrary = [a-zA-Z][\w-]*(?<=-) 21:20:09
@helle:tacobelllabs.nethelle (just a stray cat girl)s"" may actually work very welll, for string literal21:20:38
@commentator2.0:elia.gardenRutile (Commentator2.0) feel free to pingalso, what exactly is the difference between a variable and an identifier, especilaly in the context of nix?21:20:39
@helle:tacobelllabs.nethelle (just a stray cat girl)or idk21:20:43
@helle:tacobelllabs.nethelle (just a stray cat girl)but I am just using this to demonstrate cases to worry about with UX and teaching, not so much as an actual thing to work on right now21:21:08
@charles:computer.surgeryCharlesmy point is that i don't think this is complicated to explain, it's maybe one to three sentences depending on how specific you really want to be i guess21:21:17
@commentator2.0:elia.gardenRutile (Commentator2.0) feel free to ping * non-arbitrary = [a-zA-Z][\w-]*(?!<=-) 21:21:21
@helle:tacobelllabs.nethelle (just a stray cat girl)I agree, but already having to think about that helps shape further choices21:21:50
@charles:computer.surgeryCharlesit's not like i wasn't thinking about explainability when i came up with this idea21:22:14
@helle:tacobelllabs.nethelle (just a stray cat girl)like, I've seen some amazing programming concepts that people should learn early on, and omfg when I had to try and teach them to people21:22:29
@charles:computer.surgeryCharlesin the context of nix i don't think there really is a difference21:22:59
@charles:computer.surgeryCharlesin other languages though function names, class/struct/enum/type names, variable names, etc are all identifiers21:23:19
@helle:tacobelllabs.nethelle (just a stray cat girl)and this can go as simple as "well, Python has like at least 3 string formatting mini languages, of which 2 are relevant to this day"21:23:22
@commentator2.0:elia.gardenRutile (Commentator2.0) feel free to pingI'd just explain it as "has to be a letter at first, then any amount of word characters (letter or digit) and might include a hyphen; everything else requires wrapping in an ident string. 21:23:29
@helle:tacobelllabs.nethelle (just a stray cat girl)like that one gave us no end of headaches21:23:32
@charles:computer.surgeryCharlesvariable names are a subset of identifiers21:23:53
@helle:tacobelllabs.nethelle (just a stray cat girl)(we TA'ed at uni extensively and cowrote some courses)21:24:08
@charles:computer.surgeryCharlesnix doesn't have functions distinct from variables or types though so in nix's case the sets are equal21:24:09
@rosssmyth:matrix.orgrosssmythhorrifying 21:25:19
@charles:computer.surgeryCharlesyeah lol i'm very surprised that works21:25:42
@helle:tacobelllabs.nethelle (just a stray cat girl)check the Nix iceberg for more horrors21:25:45
@charles:computer.surgeryCharlesi would explain it as XID_Start followed by zero or more XID_Continue because that's what it is, and you don't need to explain what those are because explaining that is unicode's job21:27:15
@charles:computer.surgeryCharlesfor example https://doc.rust-lang.org/reference/identifiers.html#grammar-IDENTIFIER21:27:38
@charles:computer.surgeryCharles* for example https://doc.rust-lang.org/reference/identifiers.html21:27:50
@commentator2.0:elia.gardenRutile (Commentator2.0) feel free to ping
In reply to @charles:computer.surgery
i would explain it as XID_Start followed by zero or more XID_Continue because that's what it is, and you don't need to explain what those are because explaining that is unicode's job
Something something consecutive hyphens
21:28:03
@helle:tacobelllabs.nethelle (just a stray cat girl)I mean...... for a first year compsci student with the two classes I just mentioned, :P that is the level a lot of people starting out with any new language actually would have roughly, even if they are super skilled in say PHP21:28:07
@charles:computer.surgeryCharlesthe motivation is to ban those from what i'm calling literal identifiers21:28:35
@charles:computer.surgeryCharlesthat's the entire point21:28:51
@rosssmyth:matrix.orgrosssmythNix is an immutable lang so there are no "variables", as nothing can ever change. For functional languages you usually call things "[let] bindings," as it is bound to a specific value, and will never change (unless you shadow the binding). 21:28:52

Show newer messages


Back to Room ListRoom Version: 10