Sophie

Sophie

distrib > Fedora > 15 > i386 > by-pkgid > 010670e365eac4bfdf0087ea1c497c2e > files > 68

gauche-0.9.3.2-1.fc15.i686.rpm

;;; -*- coding: euc-jp -*-
;;; This is just a joke.

(define-syntax ¦Ë
  (syntax-rules () ((_ args body ...) (lambda args body ...))))

(define-syntax ÄêµÁ
  (syntax-rules (¤Ï)
    ((_ (f . args) body ...)
     (define (f . args) body ...))
    ((_ var val)
     (define var val))
    ((_ var ¤Ï val)
     (define var val))))

(define-syntax ¤â¤·
  (syntax-rules (¤Ê¤é¤Ð ¤Ç¤Ê¤±¤ì¤Ð)
    ((_ test ¤Ê¤é¤Ð then)
     (if test then))
    ((_ test ¤Ê¤é¤Ð then ¤Ç¤Ê¤±¤ì¤Ð else)
     (if test then else))
    ((_ test ¤Ç¤Ê¤±¤ì¤Ð else)
     (unless test else))
    ((_ test then)
     (if test then))
    ((_ test then else)
     (if test then else))))

(define-syntax ÂåÆþ
  (syntax-rules (¤Ø)
    ((_ var ¤Ø val)
     (set! var val))
    ((_ var val)
     (set! var val))))

(define-syntax ¶É½êÄêµÁ
  (syntax-rules (¤Ï)
    ((_ ((var ¤Ï val) ...) body ...)
     (let ((var val) ...) body ...))
    ((_ ((var val) ...) body ...)
     (let ((var val) ...) body ...))
    ))

(define-syntax ½ç¼¡¶É½êÄêµÁ
  (syntax-rules (¤Ï)
    ((_ ((var ¤Ï val) ...) body ...)
     (let* ((var val) ...) body ...))
    ((_ ((var val) ...) body ...)
     (let* ((var val) ...) body ...))
    ))
    
(define-syntax ºÆµ¢¶É½êÄêµÁ
  (syntax-rules (¤Ï)
    ((_ ((var ¤Ï val) ...) body ...)
     (letrec ((var val) ...) body ...))
    ((_ ((var val) ...) body ...)
     (letrec ((var val) ...) body ...))
    ))
    

(define ¡ã <)
(define ¡å <=)
(define ¡á =)
(define ¡ä >)
(define ¡æ >=)

(define ¡Ü +)
(define ¡Ý -)
(define ¡ß *)
(define ¡à /)

(define ʸ»úÎ󢪥ꥹ¥È string->list)
(define µÕ¥ê¥¹¥È reverse)

;;-----------------------------------------------
;; examples

(ÄêµÁ ³¬¾è ¤Ï
   (¦Ë (n) (¤â¤· (¡å n 2) ¤Ê¤é¤Ð n ¤Ç¤Ê¤±¤ì¤Ð (¡ß n (³¬¾è (¡Ý n 1))))))

(ÄêµÁ ²óʸ¤«? ¤Ï
   (¦Ë (ʸ»úÎó)
     (½ç¼¡¶É½êÄêµÁ ((ʸ»ú¥ê¥¹¥È ¤Ï (ʸ»úÎ󢪥ꥹ¥È ʸ»úÎó))
                   (µÕʸ»ú¥ê¥¹¥È ¤Ï (µÕ¥ê¥¹¥È ʸ»ú¥ê¥¹¥È)))
       (equal? µÕʸ»ú¥ê¥¹¥È ʸ»ú¥ê¥¹¥È))))