Jump to content

Nested templated data: Difference between revisions

(→‎{{header|Python}}: added zkl header)
(→‎{{header|zkl}}: added code)
Line 173:
 
=={{header|zkl}}==
Formatting is lost as zkl is format free. A pretty printer could be written but
<lang zkl></lang>
the tasks asks for a data structure.
<lang zkl></lang>
 
Void is used as a marker for an unknown payload.
<lang zkl>var payloads=[1..6].pump(List,"Payload#".append);
 
fcn get(n){ try{ payloads[n - 1] }catch{ Void } }
fcn sub(list){ list.pump(List, fcn(n){ if(n.isType(List)) sub(n) else get(n) }) }
fcn template(list){ list.pump(List,sub) }</lang>
<lang zkl>foreach p in (T(
T(T(T(1, 2),
T(3, 4, 1),
5),),
T(T(T(1, 2),
T(10,4, 1),
5),))){
println(" Template: %s\nData structure: %s".fmt(p,sub(p)));
<lang zkl>}</lang>
{{out}}
<pre>
Template: L(L(L(1,2),L(3,4,1),5))
Data structure: L(L(L("Payload#1","Payload#2"),L("Payload#3","Payload#4","Payload#1"),"Payload#5"))
Template: L(L(L(1,2),L(10,4,1),5),L())
Data structure: L(L(L("Payload#1","Payload#2"),L(Void,"Payload#4","Payload#1"),"Payload#5"),L())
</pre>
Anonymous user
Cookies help us deliver our services. By using our services, you agree to our use of cookies.