#!/usr/bin/guile \ -e main -s !# ;;; Copyright 2005 Daniel Cer (daniel.cer@cs.colorado.edu) ;;; ;;; This work is licensed under the Creative Commons Attribution-NonCommercial- ;;; ShareAlike License. To view a copy of this license, visit ;;; http://creativecommons.org/licenses/by-nc-sa/2.5/ or send a letter to ;;; Creative Commons, 543 Howard Street, 5th Floor, San Francisco, California, ;;; 94105, USA. (define (fibonacci n) (cond ((<= n 0) -1) ((<= n 2) 1) (else (+ (fibonacci (- n 1)) (fibonacci (- n 2)))))) (define (main args) (if (eqv? (length args) 2) (let ((n (string->number (car (cdr args))))) (display (string-append "fibonacci(" (number->string n) "): " (number->string (fibonacci n)) "\n"))) (display (string-append "Usage:\n\t" (car args) "(n-th fibonacci # to calculate)\n"))))