Jump to content

Singly-linked list/Traversal: Difference between revisions

/* {{header|jq}} def items:
(→‎{{header|jq}}: remove older version)
(/* {{header|jq}} def items:)
Line 991:
For context see [[Singly-linked_list/Element_definition#jq]].
 
Here we define a "map" filter as well as two twoa traversal filtersfilter.
<lang jq>
# Traverse the input SLL, applying the filter f to each item.
def traverse(f):
def t:
select(has("item")) | (.item|f), (.next|t);
t;
 
# Produce a stream of the items in the input SLL.
def titems:
def traverse: traverse(.);
while(.; .next) | .item;
 
def map_singly_linked_list(f):
Line 1,006 ⟶ 1,001:
if has("item") then (.item |= f) | (.next |= m)
else . end;
m;</lang>
</lang>
'''Examples'''
<lang jq>{
Line 1,016 ⟶ 1,010:
}
}
| reduce traverseitems as $item (null; .+$item),
map_singly_linked_list(- .)</lang>
traverse(- .),
</lang>{{out}}
map_singly_linked_list(- .)
</lang>{{out}}
<pre>
3
-1
-2
{
"item": -1,
Line 1,032 ⟶ 1,023:
}
</pre>
 
 
=={{header|Julia}}==
2,472

edits

Cookies help us deliver our services. By using our services, you agree to our use of cookies.