cuelang.org/go@v0.13.0/cue/testdata/comprehensions/015_list_comprehension.txtar (about)

     1  #name: list comprehension
     2  #evalFull
     3  -- in.cue --
     4  a: [for k, v in b if k < "d" if v > b.a {k}]
     5  b: {
     6  	a: 1
     7  	b: 2
     8  	c: 3
     9  	d: 4
    10  }
    11  c: [for _, x in b for _, y in b if x < y {x}]
    12  d: [for x, _ in a {x}]
    13  -- out/def --
    14  a: ["b", "c"]
    15  b: {
    16  	a: 1
    17  	b: 2
    18  	c: 3
    19  	d: 4
    20  }
    21  c: [1, 1, 1, 2, 2, 3]
    22  d: [0, 1]
    23  -- out/export --
    24  a: ["b", "c"]
    25  b: {
    26  	a: 1
    27  	b: 2
    28  	c: 3
    29  	d: 4
    30  }
    31  c: [1, 1, 1, 2, 2, 3]
    32  d: [0, 1]
    33  -- out/yaml --
    34  a:
    35  - b
    36  - c
    37  b:
    38    a: 1
    39    b: 2
    40    c: 3
    41    d: 4
    42  c:
    43  - 1
    44  - 1
    45  - 1
    46  - 2
    47  - 2
    48  - 3
    49  d:
    50  - 0
    51  - 1
    52  -- out/json --
    53  {"a":["b","c"],"b":{"a":1,"b":2,"c":3,"d":4},"c":[1,1,1,2,2,3],"d":[0,1]}
    54  -- out/legacy-debug --
    55  <0>{a: ["b","c"], b: <1>{a: 1, b: 2, c: 3, d: 4}, c: [1,1,1,2,2,3], d: [0,1]}
    56  -- out/compile --
    57  --- in.cue
    58  {
    59    a: [
    60      for k, v in 〈1;b〉 if (〈0;k〉 < "d") if (〈0;v〉 > 〈2;b〉.a) {
    61        〈1;k〉
    62      },
    63    ]
    64    b: {
    65      a: 1
    66      b: 2
    67      c: 3
    68      d: 4
    69    }
    70    c: [
    71      for _, x in 〈1;b〉 for _, y in 〈2;b〉 if (〈1;x〉 < 〈0;y〉) {
    72        〈2;x〉
    73      },
    74    ]
    75    d: [
    76      for x, _ in 〈1;a〉 {
    77        〈1;x〉
    78      },
    79    ]
    80  }
    81  -- out/eval/stats --
    82  Leaks:  0
    83  Freed:  19
    84  Reused: 12
    85  Allocs: 7
    86  Retain: 10
    87  
    88  Unifications: 19
    89  Conjuncts:    36
    90  Disjuncts:    23
    91  -- out/eval --
    92  (struct){
    93    a: (#list){
    94      0: (string){ "b" }
    95      1: (string){ "c" }
    96    }
    97    b: (struct){
    98      a: (int){ 1 }
    99      b: (int){ 2 }
   100      c: (int){ 3 }
   101      d: (int){ 4 }
   102    }
   103    c: (#list){
   104      0: (int){ 1 }
   105      1: (int){ 1 }
   106      2: (int){ 1 }
   107      3: (int){ 2 }
   108      4: (int){ 2 }
   109      5: (int){ 3 }
   110    }
   111    d: (#list){
   112      0: (int){ 0 }
   113      1: (int){ 1 }
   114    }
   115  }