#!/usr/bin/env sh # -*- wisp -*- guile -L $(dirname $(dirname $(realpath "$0"))) -c '(import (language wisp spec))' exec guile -L $(dirname $(dirname $(realpath "$0"))) --language=wisp -s "$0" "$@" ; !# ;;; coffee --- pseudo-code for work with coffee, based on flawed java-code on a cup import : ice-9 q ice-9 pretty-print define-syntax-rule : sip x set! x #f define-syntax-rule : pop x let : : y : car x set! x : cdr x . y define* : work schedule let* : pot : prepare 'coffee cup : serve pot let proceed : : task : pop schedule sip cup execute task when : not : done? schedule when : empty? cup when : empty? pot set! pot : prepare 'coffee set! cup : serve pot proceed : pop schedule define prepare list define serve car define execute pretty-print define done? null? define : empty? x equal? #f x define schedule : iota 5 work schedule