#!/usr/bin/env python
# encoding=utf-8 (pep 0263)
def tiskniseznam(xs):
i = 1
print("seznam=[")
while xs != None:
print(" %d: %s" % (i, xs[0]))
i = i + 1
xs = xs[1]
print("]")
# demonstracni vypis
if __name__ == "__main__":
print("Program vytiskne zadany seznam. Napr.:\n")
print("Vysledek volani tiskniseznam(('a', ('b', ('c', None)))) je:\n")
tiskniseznam(('a', ('b', ('c', None))))
print("\n\nVysledek volani tiskniseznam(('a', ('b', (['c1', 'c2', 'c3'], " +
"('d', ('mezi d a e', ('e', None))))))). je:\n")
tiskniseznam(('a', ('b', (['c1', 'c2', 'c3'], ('d', ('mezi d a e', ('e', None)))))))
print("")
Program vytiskne zadany seznam. Napr.:
Vysledek volani tiskniseznam(('a', ('b', ('c', None)))) je:
seznam=[
1: a
2: b
3: c
]
Vysledek volani tiskniseznam(('a', ('b', (['c1', 'c2', 'c3'], ('d', ('mezi d a e', ('e', None))))))). je:
seznam=[
1: a
2: b
3: ['c1', 'c2', 'c3']
4: d
5: mezi d a e
6: e
]
| % nacteni:
/* ['1.2_16.pl']. */
% ve SWISH muze hlasit chybu "No permission to call sandboxed `tab(_4808)'"
% reseni viz https://github.com/SWI-Prolog/swish/issues/119
tiskniseznam(S):-write('seznam=['),nl,tiskniseznam(S,1).
tiskniseznam([],_):-write(']'),nl.
tiskniseznam([H|T],N):- tab(4),write(N),write(': '),write(H),nl,N1 is N+1,tiskniseznam(T,N1).
% demonstracni vypis
% abychom se vyhli varovanim "Redefined static procedure ..."
:- dynamic
start/0.
start:-
write('Program vytiskne zadany seznam. Napr.:'),nl,nl,
write('Vysledek dotazu "tiskniseznam([a, b, c])." je:'),nl,
tiskniseznam([a, b, c]),nl,
write('Vysledek dotazu "tiskniseznam([a, b, [c1, c2, c3], d, `mezi d a e`, e])." je:'),nl,
tiskniseznam([a, b, [c1, c2, c3], d, 'mezi d a e', e]).
?-start.
:- retractall(write_all_X/3).
:- retractall(start/0).
Program vytiskne zadany seznam. Napr.:
Vysledek dotazu "tiskniseznam([a, b, c])." je:
seznam=[
1: a
2: b
3: c
]
Vysledek dotazu "tiskniseznam([a, b, [c1, c2, c3], d, `mezi d a e`, e])." je:
seznam=[
1: a
2: b
3: [c1,c2,c3]
4: d
5: mezi d a e
6: e
]
|