sUTL core library, part 5
Named reusable transforms, with full declarations and explicit dependency lists.
sUTL · Guide · Reference · Examples
These are declarations from the core distribution. Compile their named requirements against the complete distribution; an isolated declaration may depend on others. Historical language: "sUTL0" labels are retained as archived input, accepted by the current language. See declarations and libraries.
filttrav_core_emlynoregan_com
Requires: switch, coalesce, filttrav_core_emlynoregan_com.
{
"language": "sUTL0",
"name": "filttrav_core_emlynoregan_com",
"transform-t": {
"!": {
":": {
"&": "switch",
"value": {
"&": "type",
"value": "^@.source"
},
"cases": [
[
"map",
{
"&": "makemap",
"value": {
"&": "reduce",
"list": {
"&": "keys",
"map": "^@.source"
},
"accum": [],
"t": {
":": {
"!": {
":": {
"&": "if",
"cond": {
":": "^@.keepvalue"
},
"true": {
":": [
"&&",
"^@.accum",
[
[
"^@.item",
{
"&": "filttrav_core_emlynoregan_com",
"source": [
"^@",
"source",
"^@.item"
]
}
]
]
]
},
"false": {
":": "^@.accum"
}
}
},
"keepvalue": {
"!": "^@.filter-t",
"key": "^@.item",
"value": [
"^@",
"source",
"^@.item"
]
}
}
}
}
}
],
[
"list",
[
"^%",
{
"&": "reduce",
"list": "^@.source",
"accum": {
"index": 0,
"result": []
},
"t": {
":": {
"index": [
"&+",
"^@.index",
1
],
"result": {
"!": {
":": {
"&": "if",
"cond": {
":": "^@.keepvalue"
},
"true": {
":": [
"&&",
"^@.accum.result",
{
"&": "filttrav_core_emlynoregan_com",
"source": "^@.item"
}
]
},
"false": {
":": "^@.accum.result"
}
}
},
"keepvalue": {
"!": "^@.filter-t",
"key": "^@.index",
"value": "^@.item"
}
}
}
}
},
"result"
]
],
"^@.source"
]
}
},
"filter-t": {
"&": "coalesce",
"list": [
"^@.filter-t",
"^@.t"
]
}
},
"requires": [
"switch",
"coalesce",
"filttrav_core_emlynoregan_com"
]
}
Source
Adapted from the sUTL source material.