[抱負]

ダブルクロスの達成値の平均値を求めるプログラムをschemeで書く、です。
…すいません、「次は複数のダイスを振ったときのリストを作ってくれる関数を書きたいです。」とか言ってましたが、挫折しました。
自分の頭のわるさに絶望しそうです。
まあ、とりあえず他の方向に走ってみます。
今日は、「複数のダイスを振ったときのリストから、そのリストごとの最大値を求める」です。

(define (my-max-list l)
  (if (null? l)
	  ()
	  (cons (my-max (car l)) (my-max-list (cdr l)))))
(my-max-list
 '(( 1 1)( 1 2)( 1 3)( 1 4)( 1 5)( 1 6)( 1 7)( 1 8)( 1 9)( 1 10)
   ( 2 1)( 2 2)( 2 3)( 2 4)( 2 5)( 2 6)( 2 7)( 2 8)( 2 9)( 2 10)
   ( 3 1)( 3 2)( 3 3)( 3 4)( 3 5)( 3 6)( 3 7)( 3 8)( 3 9)( 3 10)
   ( 4 1)( 4 2)( 4 3)( 4 4)( 4 5)( 4 6)( 4 7)( 4 8)( 4 9)( 4 10)
   ( 5 1)( 5 2)( 5 3)( 5 4)( 5 5)( 5 6)( 5 7)( 5 8)( 5 9)( 5 10)
   ( 6 1)( 6 2)( 6 3)( 6 4)( 6 5)( 6 6)( 6 7)( 6 8)( 6 9)( 6 10)
   ( 7 1)( 7 2)( 7 3)( 7 4)( 7 5)( 7 6)( 7 7)( 7 8)( 7 9)( 7 10)
   ( 8 1)( 8 2)( 8 3)( 8 4)( 8 5)( 8 6)( 8 7)( 8 8)( 8 9)( 8 10)
   ( 9 1)( 9 2)( 9 3)( 9 4)( 9 5)( 9 6)( 9 7)( 9 8)( 9 9)( 9 10)
   (10 1)(10 2)(10 3)(10 4)(10 5)(10 6)(10 7)(10 8)(10 9)(10 10)))
;=>(1 2 3 4 5 6 7 8 9 10 2 2 3 4 5 6 7 8 9 10 3 3 3 4 5 6 7 8 9 10 4 4 4 4 5 6 7 8 9 10 5 5 5 5 5 6 7 8 9 10 
6 6 6 6 6 6 7 8 9 10 7 7 7 7 7 7 7 8 9 10 8 8 8 8 8 8 8 8 9 10 9 9 9 9 9 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10)
(myavr(my-max-list
 '(( 1 1)( 1 2)( 1 3)( 1 4)( 1 5)( 1 6)( 1 7)( 1 8)( 1 9)( 1 10)
   ( 2 1)( 2 2)( 2 3)( 2 4)( 2 5)( 2 6)( 2 7)( 2 8)( 2 9)( 2 10)
   ( 3 1)( 3 2)( 3 3)( 3 4)( 3 5)( 3 6)( 3 7)( 3 8)( 3 9)( 3 10)
   ( 4 1)( 4 2)( 4 3)( 4 4)( 4 5)( 4 6)( 4 7)( 4 8)( 4 9)( 4 10)
   ( 5 1)( 5 2)( 5 3)( 5 4)( 5 5)( 5 6)( 5 7)( 5 8)( 5 9)( 5 10)
   ( 6 1)( 6 2)( 6 3)( 6 4)( 6 5)( 6 6)( 6 7)( 6 8)( 6 9)( 6 10)
   ( 7 1)( 7 2)( 7 3)( 7 4)( 7 5)( 7 6)( 7 7)( 7 8)( 7 9)( 7 10)
   ( 8 1)( 8 2)( 8 3)( 8 4)( 8 5)( 8 6)( 8 7)( 8 8)( 8 9)( 8 10)
   ( 9 1)( 9 2)( 9 3)( 9 4)( 9 5)( 9 6)( 9 7)( 9 8)( 9 9)( 9 10)
   (10 1)(10 2)(10 3)(10 4)(10 5)(10 6)(10 7)(10 8)(10 9)(10 10))))
;=>143/20

…検算していないので、avrのほうが合ってるかどうか少し不安ですが。
…イチイチこのリストを書くのが面倒で、複数のダイスを振ったときのリストを作ってくれる関数を先に書こうと思ったんですが…。
ダイス増やすのも面倒だしね。

まあ、また頑張ってみます。