sUTL core library, part 4
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.
applynewdiff_core_emlynoregan_com
Requires: applynewdiff, when, removedupstrarr, map_core, longest.
{
"name": "applynewdiff_core_emlynoregan_com",
"transform-t": {
"!": {
":": {
"&": "when",
"cases": [
[
{
":": [
"&=",
null,
"^@.diff"
]
},
{
":": "^@.old"
}
],
[
{
":": [
"&!=",
"^@.oldtype",
"^@.difftype"
]
},
{
":": "^@.diff"
}
],
[
{
":": [
"&=",
"^@.difftype",
"map"
]
},
{
":": {
"!": {
":": {
"&": "makemap",
"value": {
"&": "map_core",
"list": "^@.keys",
"t": {
":": [
"^@.item",
{
"&": "applynewdiff",
"old": [
"^@",
"old",
"^@.item"
],
"diff": [
"^@",
"diff",
"^@.item"
]
}
]
}
}
}
},
"keys": {
"&": "removedupstrarr",
"list": [
"&&",
{
"&": "keys",
"map": "^@.old"
},
{
"&": "keys",
"map": "^@.diff"
}
]
}
}
}
],
[
{
":": [
"&=",
"^@.difftype",
"list"
]
},
{
":": {
"!": {
":": [
"^%",
{
"&": "reduce",
"accum": {
"index": 0,
"result": []
},
"list": "^@.longestlist",
"t": {
":": {
"index": [
"&+",
"^@.accum.index",
1
],
"result": [
"&&",
"^@.accum.result",
{
"&": "applynewdiff",
"old": [
"^@",
"old",
"^@.accum.index"
],
"diff": [
"^@",
"diff",
"^@.accum.index"
]
}
]
}
}
},
"result"
]
},
"longestlist": {
"&": "longest",
"list": [
"^@.old",
"^@.diff"
]
}
}
}
],
{
":": "^@.diff"
}
]
}
},
"oldtype": {
"&": "type",
"value": "^@.old"
},
"difftype": {
"&": "type",
"value": "^@.diff"
}
},
"requires": [
"applynewdiff",
"when",
"removedupstrarr",
"map_core",
"longest"
]
}
combine_core_emlynoregan_com
{
"name": "combine_core_emlynoregan_com",
"transform-t": {
"&": "reduce",
"list": "^@.list",
"accum": null,
"t": {
":": {
"&": "if",
"cond": {
":": "^@.accum"
},
"false": {
":": "^@.item"
},
"true": {
":": {
"&": "makemap",
"value": [
[
"!!",
{
"&": "makemap",
"value": [
[
":",
"^@.item"
]
]
}
],
[
"s",
"^@.accum"
]
]
}
}
}
}
}
}
declcombine_core_emlynoregan_com
Requires: combine, keys2map.
{
"name": "declcombine_core_emlynoregan_com",
"transform-t": {
"transform-t": {
"&": "combine",
"list": "&@.list.*.transform-t"
},
"requires": {
"&": "keys",
"map": {
"&": "keys2map",
"list": {
"!": {
"&": "reduce",
"list": "&@.list.*.requires",
"accum": {
":": [
"&&"
]
},
"t": {
":": [
"&&",
"^@.accum",
"^@.item"
]
}
}
}
}
}
},
"requires": [
"combine",
"keys2map"
]
}
max_core_emlynoregan_com
Requires: map_core.
{
"name": "max_core_emlynoregan_com",
"transform-t": {
"&": "reduce",
"accum": 0,
"t": {
":": {
"!": {
":": {
"&": "if",
"cond": {
":": [
"&>=",
"^@.accum",
"^@.item"
]
},
"true": {
":": "^@.accum"
},
"false": {
":": "^@.item"
}
}
}
}
}
},
"requires": [
"map_core"
]
}
lenmax_core_emlynoregan_com
Requires: map_core.
{
"name": "lenmax_core_emlynoregan_com",
"transform-t": {
"&": "reduce",
"accum": 0,
"t": {
":": {
"!": {
":": {
"&": "if",
"cond": {
":": [
"&>=",
"^@.accum",
"^@.itemlen"
]
},
"true": {
":": "^@.accum"
},
"false": {
":": "^@.itemlen"
}
}
},
"itemlen": {
"&": "len",
"list": "^@.item"
}
}
}
},
"requires": [
"map_core"
]
}
longest_core_emlynoregan_com
{
"name": "longest_core_emlynoregan_com",
"transform-t": {
"&": "reduce",
"accum": [],
"t": {
":": {
"&": "if",
"cond": {
":": [
"&>",
{
"&": "len",
"list": "^@.item"
},
{
"&": "len",
"list": "^@.accum"
}
]
},
"true": {
"'": "^@.item"
},
"false": {
"'": "^@.accum"
}
}
}
}
}
traverse_core_emlynoregan_com
Requires: switch, coalesce, traverse_core_emlynoregan_com.
{
"language": "sUTL0",
"name": "traverse_core_emlynoregan_com",
"transform-t": {
"!": {
":": {
"&": "switch",
"value": {
"&": "type",
"value": "^@.source"
},
"cases": [
[
"map",
{
"&": "makemap",
"value": {
"&": "reduce",
"list": {
"&": "keys",
"map": "^@.source"
},
"accum": [],
"t": {
":": {
"!": {
":": [
"&&",
"^@.accum",
[
[
"^@.item",
{
"&": "traverse_core_emlynoregan_com",
"source": "^@.transformedvalue"
}
]
]
]
},
"transformedvalue": {
"!": "^@.traverse-t",
"key": "^@.item",
"value": [
"^@",
"source",
"^@.item"
]
}
}
}
}
}
],
[
"list",
[
"^%",
{
"&": "reduce",
"list": "^@.source",
"accum": {
"index": 0,
"result": []
},
"t": {
":": {
"index": [
"&+",
"^@.index",
1
],
"result": {
"!": {
":": [
"&&",
"^@.accum.result",
[
{
"&": "traverse_core_emlynoregan_com",
"source": "^@.transformedvalue"
}
]
]
},
"transformedvalue": {
"!": "^@.traverse-t",
"key": "^@.index",
"value": "^@.item"
}
}
}
}
},
"result"
]
],
{
"!": "^@.traverse-t",
"value": "^@.source"
}
]
}
},
"traverse-tx": {
"&": "coalesce",
"list": [
"^@.traverse-t",
"^@.t"
]
}
},
"requires": [
"switch",
"coalesce",
"traverse_core_emlynoregan_com"
]
}
Source
Adapted from the sUTL source material.