Rebol3 Code Examplex
Nautical bell
A small program that emulates a nautical bell producing a ringing bell pattern at certain times throughout the day.
Rebol [
title: "Rosetta code: Nautical bell"
file: %Nautical_bell.r3
url: https://rosettacode.org/wiki/Nautical_bell
]
forever [
now-time: now/time
;; seconds until next half-hour mark
wait (29 - (now-time/minute % 30)) * 60 + 60 - now-time/second
prin format [<yyyy-mm-dd hh:mm> " | "] now-time: now/time
;; Bells...
if zero? n: (now-time/hour * 2 + (now-time/minute / 30)) % 8 [n: 8]
loop n / 2 [prin "^Gbang" wait 2 prin "-bang ^G" wait 2]
if odd? n [prin "^Gbang"]
print ""
]
Output:
2026-07-07 12:30 | bang
2026-07-07 13:00 | bang-bang
2026-07-07 13:30 | bang-bang bang
2026-07-07 14:00 | bang-bang bang-bang
2026-07-07 14:30 | bang-bang bang-bang bang
2026-07-07 15:00 | bang-bang bang-bang bang-bang
2026-07-07 15:30 | bang-bang bang-bang bang-bang bang
2026-07-07 16:00 | bang-bang bang-bang bang-bang bang-bang
2026-07-07 16:30 | bang
2026-07-07 17:00 | bang-bang
2026-07-07 17:30 | bang-bang bang
2026-07-07 18:00 | bang-bang bang-bang
2026-07-07 18:30 | bang-bang bang-bang bang
2026-07-07 19:00 | bang-bang bang-bang bang-bang
2026-07-07 19:30 | bang-bang bang-bang bang-bang bang
2026-07-07 20:00 | bang-bang bang-bang bang-bang bang-bang
2026-07-07 20:30 | bang
2026-07-07 21:00 | bang-bang
2026-07-07 21:30 | bang-bang bang
2026-07-07 22:00 | bang-bang bang-bang
2026-07-07 22:30 | bang-bang bang-bang bang
2026-07-07 23:00 | bang-bang bang-bang bang-bang
2026-07-07 23:30 | bang-bang bang-bang bang-bang bang
2026-07-08 00:00 | bang-bang bang-bang bang-bang bang-bang