codepad
[
create a new paste
]
login
|
about
Language:
C
C++
D
Haskell
Lua
OCaml
PHP
Perl
Plain Text
Python
Ruby
Scheme
Tcl
;;;** お題: じゃんけんの勝ちの数を調べるもん (define judge_janken (lambda (s) (if ;;じゃんけんされてないもん,バカア! (null? s) 0 (let (;(kinds '(c p p c p)) ->(0 2 3 2) ;;(グー チョキ パー 種類)だよーん (res (kinds (string->list s) list))) (if ;;勝負なしでしたぁ!! (not (= 2 (cadddr res))) 0 ;;勝負判定しまぁす (cond ;;グーがあるときでえーす ((not (zero? (car res))) (if (zero? (cadr res)) ;;チョキじゃないならパーの数だもん (caddr res) ;;チョキならグーの数だもん (car res))) (else ;;チョキとパーならチョキの数だよぉ (cadr res)))))))) ;;;補助関数 ;;; (kinds s f) ;;; (kinds '(#\c #\p #\c #\p #\p) list) ->(0 2 3 2) ;;; 返値はg c p k ;;; g c p ->グーチョキパーの各数 ;;; k->手の種類の数 (define kinds (lambda (s col) (cond ((null? s) (col 0 0 0 0)) ((eq? #\g (car s)) (kinds (cdr s) (lambda (g c p k) (col (1+ g) c p (if (= g 0) (1+ k) k))))) ((eq? #\c (car s)) (kinds (cdr s) (lambda (g c p k) (col g (1+ c) p (if (= c 0) (1+ k) k))))) ((eq? #\p (car s)) (kinds (cdr s) (lambda (g c p k) (col g c (1+ p) (if (= p 0) (1+ k) k)))))))) ;;;実行例 (judge_janken "gpgpgppppg") 6 (judge_janken "ggggggggggggggg") 0 (judge_janken "ccpcpppcccpppcppcpcc") 10 (judge_janken "ggcgcgcggggcpgcggcgcggggcgcgcc") 0
Private
[
?
]
Run code
Submit