!9IQChSjwSHXPPWTa:lix.systems

Lix

1110 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-rooms298 Servers

Load older messages


SenderMessageTime
11 Dec 2025
@kfears:matrix.orgKFears (burnt out) Double quotes regular strings and singular quotes for verbatim strings 20:32:24
@aloisw:julia0815.dealoisw Or copy Rust's r# prefix fully. Although that's weird with whitespace again. 20:32:33
@piegames:flausch.socialpiegames
In reply to @aloisw:julia0815.de
packages.r"1password"
Why the r" though? Because strings as identifiers literally already work today
20:54:16
@piegames:flausch.socialpiegamesI think y'all are confusing "raw identifiers" with "raw strings"20:54:45
@charles:computer.surgeryCharles

i don't think they do:

nix-repl> "1" = 2
Added "1".

nix-repl> "1"
"1"
21:04:59
@charles:computer.surgeryCharlesyou need some syntax to "dereference" a string as if it were a variable21:05:43
@charles:computer.surgeryCharlesyou can work around the lack of this today with this suggestion though21:06:09
@charles:computer.surgeryCharleslike this21:06:17
@charles:computer.surgeryCharles

e.g. imagine being able to do this instead of the workaround:

nix-repl> "1" = 2
Added "1".

nix-repl> i"1"
2
21:08:48
@helle:tacobelllabs.nethelle (just a stray cat girl)the rules for how strings vs substraction works does need to be easy to teach, so not too much heuristic pleaaaaase21:09:39
@helle:tacobelllabs.nethelle (just a stray cat girl)we wouldgo off on a massive UX and teaching this sort of stuff rant if we weren't feeling nauseous21:10:10
@charles:computer.surgeryCharles

if i were designing a language from scratch and i wanted support for more or less arbitrary identifiers, i would have two kinds of identifiers:

  • literal identifiers, like foo, foo_bar, _foo123, etc; XID_Start followed by >=0 XID_Continue
  • string identifiers, like i"..." to use an arbitrary string of characters and escape sequences to construct an identifier
21:13:16
@charles:computer.surgeryCharles so a-1 would parse as identifer a minus literal 1, not an identifier a-1 21:14:18
@commentator2.0:elia.gardenRutile (Commentator2.0) feel free to ping
In reply to @charles:computer.surgery

if i were designing a language from scratch and i wanted support for more or less arbitrary identifiers, i would have two kinds of identifiers:

  • literal identifiers, like foo, foo_bar, _foo123, etc; XID_Start followed by >=0 XID_Continue
  • string identifiers, like i"..." to use an arbitrary string of characters and escape sequences to construct an identifier
This honestly sounds quire reasonable
21:14:27
@charles:computer.surgeryCharles if you want a-1 as an identifier you'd write i"a-1" instead 21:14:32
@charles:computer.surgeryCharles this way you get the convenience of literal identifiers for the common cases, - behaves in an obvious way, and i"..." is an "escape hatch" for other cases like i"1Password" or whatever 21:16:19
@helle:tacobelllabs.nethelle (just a stray cat girl)so in addition to the formal form, I would always ask, "okay, so you are now teaching someone who just finished introduction to programming and introduction to Java, how would you explain this"21:17:26
@charles:computer.surgeryCharles also i would probably want to define e.g. a and i"a" as syntactically equivalent 21:17:39
@charles:computer.surgeryCharles "if you want arbitrary characters in your identifier then you can wrap it in i"..."" 21:18:12
@helle:tacobelllabs.nethelle (just a stray cat girl)yeah, and when does it become "arbitrary"?21:18:26
@charles:computer.surgeryCharlesimmediately21:18:43
@helle:tacobelllabs.nethelle (just a stray cat girl)(because while most of the people discussing this here are aware of how to read documentation like this, it really needs to teachable to people who are not this deeply involved)21:18:45
@helle:tacobelllabs.nethelle (just a stray cat girl)also why the "i" choice (I mean I have some pros and cons to it, but one of the downsides is fonts not always being super clear with it)21:19:30
@charles:computer.surgeryCharlesalternatively you can replace "arbitrary characters" with "characters that aren't normally allowed in identifiers"21:19:38
@helle:tacobelllabs.nethelle (just a stray cat girl)welcome to me having some UX and teaching background :3 sorry about that21:19:55
@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

Show newer messages


Back to Room ListRoom Version: 10