SourceSecond » 履歴 » リビジョン 3
リビジョン 2 (Yuumi Yoshida, 2008-05-23 10:10) → リビジョン 3/4 (Yuumi Yoshida, 2008-05-23 10:10)
h1. = 第2回目のソースコード = リスト1:ジャンケン(Javaの場合) <pre> {{{ // Java import static java.lang.Math.*; public class Jyanken { public static String guu_choki_pa(double r) { if (r < 0.33) { return "Guu"; } else if (r < 0.66) { return "Choki"; } else { return "Pa"; } } public static void jyanken() { System.out.println(guu_choki_pa(random())); } public static void main(String args[]) { for (int i = 0; i < 10; i++) { jyanken(); } } } </pre> }}} リスト2:ジャンケン(Gaucheの場合) <pre> {{{ (use srfi-27) (define (guu-choki-pa r) (cond ((< r 0.33) "Guu") ((< r 0.66) "Choki") (else "Pa"))) (define (jyanken) (print (guu-choki-pa (random-real)))) (dotimes (i 10) (jyanken)) </pre> }}} リスト5:S式を与えると対応するHTMLを出力するプログラム <pre> {{{ (define (print-html e) (cond ((list? e) (print-open-tag (car e)) (print-html-list (cdr e)) (print-close-tag (car e))) (else (display e)))) (define (print-html-list s) (cond ((null? s) #f) (else (print-html (car s)) (print-html-list (cdr s))))) (define (print-open-tag tag) (display "<") (display tag) (display ">")) (define (print-close-tag tag) (display "</") (display tag) (display ">")) (define gauche-page '(html (head (title "Gauche Web")) (body (h1 "Gauche Web Page") (table (tr (td 1)(td "lisp")) (tr (td 2)(td "scheme")))))) (print-html gauche-page) </pre> }}}