At the moment I try to practice my skills in PL/SQL. Like these old Chinese monks I believe that you can only be a master, if you really practice steadily. And while learning I discovered that the LOOP statement in PL/SQL is something really cool, because it would substitute the always famous
while(true):
  if expr:
    break
  do_smth
 for implementing the sentinel.
For the sake of this blog I implemented this thing :)
class List:
    def __init__(self, node, next): self.node, self.next = node, next
class Block:
    def __init__(self, xs): self.xs = xs
    def body(self):
        print("%d" % self.xs.node)
        self.xs = self.xs.next
    def cond(self):
        return False if self.xs == None else True
class Loop:
    def __init__(self, block):
        if block.cond():
            block.body()
            Loop(block)
Loop(Block(List(23, List(42, List(5, None)))))