push
circle-ci
116 of 116 new or added lines in 9 files covered. (100.0%)
4257 of 4474 relevant lines covered (95.15%)
1708.23 hits per line
1 |
package core
|
|
2 |
|
|
3 |
type sequence interface { |
|
4 |
collection |
|
5 |
|
|
6 |
insert(Value, Value) Value |
|
7 |
} |
|
8 |
|
|
9 |
// Insert inserts an element into a sequence.
|
|
10 |
var Insert FunctionType
|
|
11 |
|
|
|
func initInsert() FunctionType {
|
1✔ |
|
return NewLazyFunction(
|
1✔ |
|
NewSignature([]string{"collection"}, "indexValuePairs", nil, ""), |
1✔ |
|
func(vs ...Value) (result Value) {
|
31✔ |
|
s, err := evalSequence(vs[0])
|
30✔ |
|
|
30✔ |
|
if err != nil { |
34✔ |
|
return err
|
4✔ |
|
} |
4✔ |
21 |
|
|
|
l, err := EvalList(vs[1])
|
26✔ |
|
|
26✔ |
|
if err != nil { |
26✔ |
|
return err
|
× |
|
} |
× |
27 |
|
|
|
for !l.Empty() {
|
54✔ |
|
k := l.First() |
28✔ |
|
l, err = EvalList(l.Rest()) |
28✔ |
|
|
28✔ |
|
if err != nil { |
28✔ |
|
return err
|
× |
|
} |
× |
35 |
|
|
|
s, err = evalSequence(s.insert(EvalPure(k), l.First())) |
28✔ |
|
|
28✔ |
|
if err != nil { |
34✔ |
|
return err
|
6✔ |
|
} |
6✔ |
41 |
|
|
|
if l, err = EvalList(l.Rest()); err != nil { |
22✔ |
|
return err
|
× |
|
} |
× |
45 |
} |
|
46 |
|
|
|
return s
|
20✔ |
48 |
}) |
|
49 |
} |