プロジェクト

全般

プロフィール

SourceSecond » 履歴 » バージョン 3

Yuumi Yoshida, 2008-05-23 10:10

1 1 Yuumi Yoshida
2 3 Yuumi Yoshida
h1. 第2回目のソースコード
3
4
5 1 Yuumi Yoshida
リスト1:ジャンケン(Javaの場合)
6 3 Yuumi Yoshida
<pre>
7 1 Yuumi Yoshida
// Java
8
import static java.lang.Math.*;
9
public class Jyanken {
10
11
    public static String guu_choki_pa(double r) {
12
       if (r < 0.33)  {
13
          return "Guu";
14
       } else if (r < 0.66) {
15
          return "Choki";
16
       } else {
17
          return "Pa";
18
       }
19
    }
20
21
    public static void jyanken() {
22
        System.out.println(guu_choki_pa(random()));
23
    }
24
25
    public static void main(String args[]) {
26
        for (int i = 0; i < 10; i++) {
27
            jyanken();
28
        }
29
    }
30
}
31 3 Yuumi Yoshida
</pre>
32 1 Yuumi Yoshida
33
リスト2:ジャンケン(Gaucheの場合)
34 3 Yuumi Yoshida
<pre>
35 1 Yuumi Yoshida
(use srfi-27)
36
37
(define (guu-choki-pa r)
38
  (cond ((< r 0.33) "Guu")
39
        ((< r 0.66) "Choki")
40
        (else "Pa")))
41
42
(define (jyanken)
43
  (print (guu-choki-pa (random-real))))
44
45
(dotimes (i 10) (jyanken))
46 3 Yuumi Yoshida
</pre>
47 1 Yuumi Yoshida
48
リスト5:S式を与えると対応するHTMLを出力するプログラム
49 3 Yuumi Yoshida
<pre>
50 1 Yuumi Yoshida
(define (print-html e)
51
 (cond ((list? e)
52
        (print-open-tag (car e))
53
        (print-html-list (cdr e))
54
        (print-close-tag (car e)))
55
        (else (display e))))
56
57
(define (print-html-list s)
58
 (cond ((null? s) #f)
59
       (else
60
        (print-html (car s))
61
        (print-html-list (cdr s)))))
62
63
(define (print-open-tag tag)
64
 (display "<")
65
 (display tag)
66
 (display ">"))
67
68
(define (print-close-tag tag)
69
 (display "</")
70
 (display tag)
71
 (display ">"))
72
73
(define gauche-page
74
 '(html
75
   (head (title "Gauche Web"))
76
   (body (h1 "Gauche Web Page")
77
         (table (tr (td 1)(td "lisp"))
78
                (tr (td 2)(td "scheme"))))))
79
80
(print-html gauche-page)
81 3 Yuumi Yoshida
</pre>