This is in a list of suggestions to be addressed some day https://github.com/elm-lang/elm-compiler/issues/1375 'Allow keywords as record field names' It seems this can be possible, just not done yet.
On Friday, December 16, 2016 at 11:23:23 AM UTC+11, Nick H wrote: > > Ah, I guess you would run into typing issues if you tried to use a Dict... > that's just my knee-jerk response when people ask about doing things with > records that you can't do with records :-| > > > On Thu, Dec 15, 2016 at 4:06 PM, Nick H <[email protected] > <javascript:>> wrote: > >> If you want something that can hold arbitrary string keys like a >> JavaScript object, you can use a Dict. >> >> Making keywords context-sensitive would be a language designer's >> nightmare. I don't think most languages allow this. Which contexts would >> the keywords be reserved, and which would they not be? Even if you can >> specify the special rules consistently, your compiler will become more >> complicated, more prone to bugs. And if you get everything working, the >> only benefit you've gained is fixing this one slightly inconvenient use >> case. >> >> >> On Thu, Dec 15, 2016 at 2:15 PM, Paul Dijou <[email protected] >> <javascript:>> wrote: >> >>> Both solutions are valid (I'm actually using both depending on the >>> situation) but my main question is why is there such a limitation? Reserved >>> keywords could (should?) depend on the context. You cannot define a real >>> port inside a record, you just want a string to name a property. >>> >>> For example, in JavaScript, you can create an object with any property >>> you want, including reserved keywords, because, at the end of the day, it's >>> just string names. Some old browsers required to wrap the key inside quotes >>> so I would be fine with writing { "port" = 80 } in Elm if that would solve >>> the problem. >>> >>> Le jeudi 15 décembre 2016 16:20:25 UTC+1, Paul Dijou a écrit : >>>> >>>> Hi, >>>> >>>> I understand that "port" is a reserved keyword when writing Elm code >>>> but is there a reason to fail compilation when used as the name of a >>>> record >>>> field? It's a bummer when sending records through a port (a real one) and >>>> the JavaScript is expecting the property "port" (in the record). >>>> >>>> Thanks >>>> >>> -- >>> You received this message because you are subscribed to the Google >>> Groups "Elm Discuss" group. >>> To unsubscribe from this group and stop receiving emails from it, send >>> an email to [email protected] <javascript:>. >>> For more options, visit https://groups.google.com/d/optout. >>> >> >> > -- You received this message because you are subscribed to the Google Groups "Elm Discuss" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/d/optout.
