Closed verdverm closed 3 years ago
This will be addressed by the query proposal in #165:
a: "on"
l: [
if a == "on" {
["a", "A"].*
},
"b",
"c",
]
Is there anything that hard prevents the suggested syntax above? (@mpvl)
The benefit I see with it is:
Is there anything that hard prevents the suggested syntax above?
It's (currently) illegal because it's neither a valid embedded scalar, nor it is a valid struct value.
the ease of line edits, i.e. I can add or remove a line rather than editing within a line
Like this?
a: "on"
l: [
if a == "on" {[
"a",
"A"
].*},
"b",
"c",
]
no need for extra list style syntax, the query syntax is only marginally better than the list comp syntax
It's true there is a close relationship between the two, but I'm not sure we'd want to introduce a "third" way of writing things.
Re-opening for @mpvl's answer in any case.
For some extra context, this started from a discussion on Slack, where one of the examples is the following
a: "on"
x: "on"
b: "on"
c: "off"
aa: ["a", "A", "eh?"]
xx: ["x", "x", "ex"]
l: [
for A in aa if a == "on" { A }
for X in xx if x == "on" { X }
if b == "on" {
"b"
}
if c == "on" {
"C"
}
]
l
, which feels like weird syntax to me@verdverm: the suggested syntax would contradict what that syntax typically means. It already means something in one context and it would be very unsurprising to have it mean something else in another. There are probably also cases where the original syntax has meaning in this context.
This issue has been migrated to https://github.com/cue-lang/cue/issues/798.
For more details about CUE's migration to a new home, please see https://github.com/cue-lang/cue/issues/1078.
Is your feature request related to a problem? Please describe.
I have a list which has elements that are conditionally included. Some of them are groups and always appear together. The way to write this most intuitively is an error.
Describe the solution you'd like
Describe alternatives you've considered
[for x in aa if a == "on" { x } ]