Comment detail

ビンゴの結果を整形表示 (Nested Flatten)
シーケンスのshuffleはライブラリに追加しようかなあ。

今回のお題はshow-bingo関数で実装してます。
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
(use srfi-1)
(use srfi-27)
(use srfi-42)
(use gauche.sequence)
(use util.list)

(define (shuffle! seq)
  (do-ec (: n (- (size-of seq) 1) 0 -1)
         (let1 p (random-integer (+ n 1))
           (unless (= p n)
             (let1 tmp (ref seq n)
               (set! (ref seq n) (ref seq p))
               (set! (ref seq p) tmp)))))
  seq)

(define (bingo n)  (shuffle! (iota n 1)))

(define (show-bingo lis)
  (do-ec (: row (slices (zip (iota (length lis) 1) lis) 10))
         (begin
           (do-ec (: p row) (format #t "~3d" (car p))) (newline)
           (do-ec (: p row) (format #t "~3d" (cadr p))) (newline) (newline))))

Index

Feed

Other

Link

Pathtraq

loading...